Skip to content

Latest commit

 

History

History
57 lines (49 loc) · 1.92 KB

README.md

File metadata and controls

57 lines (49 loc) · 1.92 KB

Given a positive integer n, find the pivot integer x such that:

  • The sum of all elements between 1 and x inclusively equals the sum of all elements between x and n inclusively.

Return the pivot integer x. If no such integer exists, return -1. It is guaranteed that there will be at most one pivot index for the given input.

 

Example 1:

Input: n = 8
Output: 6
Explanation: 6 is the pivot integer since: 1 + 2 + 3 + 4 + 5 + 6 = 6 + 7 + 8 = 21.

Example 2:

Input: n = 1
Output: 1
Explanation: 1 is the pivot integer since: 1 = 1.

Example 3:

Input: n = 4
Output: -1
Explanation: It can be proved that no such integer exist.

 

Constraints:

  • 1 <= n <= 1000

Companies: Amazon

Related Topics:
Math, Prefix Sum

Similar Questions:

Solution 1.

$$\dfrac{(1+x)\cdot x}{2} = \dfrac{(x+n)\cdot(n-x+1)}{2}$$

$$x=\sqrt{\dfrac{n^2+n}{2}}$$

// OJ: https://leetcode.com/problems/find-the-pivot-integer
// Author: github.com/lzl124631x
// Time: O(1)
// Space: O(1)
class Solution {
public:
    int pivotInteger(int n) {
        int m = (n * n + n) / 2, s = sqrt(m);
        return s * s == m ? s : -1;
    }
};