Welcome to Subscribe On Youtube

Formatted question description: https://leetcode.ca/all/2485.html

2485. Find the Pivot Integer

  • Difficulty: Easy.
  • Related Topics: Math, Prefix Sum.
  • Similar Questions: Bulb Switcher.

Problem

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

Solution (Java, C++, Python)

  • class Solution {
        public int pivotInteger(int n) {
            for (int x = 1; x < 1000; ++x) {
                if ((1 + x) * x == (x + n) * (n - x + 1)) {
                    return x;
                }
            }
            return -1;
        }
    }
    
  • class Solution {
    public:
        int pivotInteger(int n) {
            for (int x = 1; x < 1000; ++x) {
                if ((1 + x) * x == (x + n) * (n - x + 1)) {
                    return x;
                }
            }
            return -1;
        }
    };
    
  • class Solution:
        def pivotInteger(self, n: int) -> int:
            for x in range(1, 1000):
                if (1 + x) * x == (x + n) * (n - x + 1):
                    return x
            return -1
    
    
  • func pivotInteger(n int) int {
    	for x := 1; x < 1000; x++ {
    		if (1+x)*x == (x+n)*(n-x+1) {
    			return x
    		}
    	}
    	return -1
    }
    
  • function pivotInteger(n: number): number {
        const y = Math.floor((n * (n + 1)) / 2);
        const x = Math.floor(Math.sqrt(y));
        return x * x === y ? x : -1;
    }
    
    
  • class Solution {
        /**
         * @param Integer $n
         * @return Integer
         */
        function pivotInteger($n) {
            $sum = ($n * ($n + 1)) / 2;
            $pre = 0;
            for ($i = 1; $i <= $n; $i++) {
                if ($pre + $i === $sum - $pre) {
                    return $i;
                }
                $pre += $i;
            }
            return -1;
        }
    }
    
    
  • impl Solution {
        pub fn pivot_integer(n: i32) -> i32 {
            let y = n * (n + 1) / 2;
            let x = (y as f64).sqrt() as i32;
    
            if x * x == y {
                return x;
            }
    
            -1
        }
    }
    

Explain:

nope.

Complexity:

  • Time complexity : O(n).
  • Space complexity : O(n).

All Problems

All Solutions