2485.找出中枢整数
链接:2485.找出中枢整数
难度:Easy
标签:数学、前缀和
简介:返回中枢整数 x 。
题解 1 - cpp
- 编辑时间:2022-11-27
- 内存消耗:5.8MB
- 编程语言:cpp
- 解法介绍:遍历。
class Solution {
public:
int pivotInteger(int n) {
int sum = (1 + n) * n / 2;
int prev_sum = 0;
for (int i = 1; i <=n ; i++) {
int next_sum = sum - prev_sum;
prev_sum += i;
if (prev_sum == next_sum) return i;
}
return -1;
}
};
题解 2 - cpp
- 编辑时间:2022-11-27
- 内存消耗:5.9MB
- 编程语言:cpp
- 解法介绍:遍历。
class Solution {
public:
int pivotInteger(int n) {
int r = (1 + n) * n / 2, l = 0;
for (int i = 1; i <= n; i++) {
l += i;
if (l == r) return i;
r -= i;
}
return -1;
}
};
题解 3 - cpp
- 编辑时间:2023-06-26
- 内存消耗:5.7MB
- 编程语言:cpp
- 解法介绍:对于圆在矩形的四边和在四个远郊区都进行检测。
class Solution {
public:
int pivotInteger(int n) {
int r = (1 + n) * n / 2, l = 0;
for (int i = 1; i <= n; i++) {
l += i;
if (l == r) return i;
r -= i;
}
return -1;
}
};
题解 4 - python
- 编辑时间:2023-06-26
- 执行用时:72ms
- 内存消耗:15.8MB
- 编程语言:python
- 解法介绍:同上。
class Solution:
def pivotInteger(self, n: int) -> int:
l = 0
r = sum(range(1, n + 1))
for i in range(1, n + 1):
l += i
if l == r: return i
r -= i
return -1
题解 5 - rust
- 编辑时间:2023-06-26
- 内存消耗:2MB
- 编程语言:rust
- 解法介绍:同上。
impl Solution {
pub fn pivot_integer(n: i32) -> i32 {
let mut l = 0;
let mut r: i32 = (1..=n).sum();
for i in 1..=n {
l += i;
if l == r {
return i
}
r -= i;
}
-1
}
}