2024-03-13 Daily Challenge
Today I have done leetcode's March LeetCoding Challenge with cpp.
March LeetCoding Challenge 13
Description
Find the Pivot Integer
Given a positive integer n, find the pivot integer x such that:
- The sum of all elements between
1andxinclusively equals the sum of all elements betweenxandninclusively.
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
// ((1 + n) * n / 2 + x) / 2 = (1 + x) * x / 2
// n^2 / 2 + n / 2 += x ^ 2
class Solution {
public:
int pivotInteger(int n) {
int target = (n * (n + 1)) / 2;
int x = sqrt(target);
if(x * x == target) return x;
return -1;
}
};