跳到主要内容

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
}
}