2485.找出中枢整数
链接:2485.找出中枢整数
难度:Easy
标签:数学、前缀和
简介:返回中枢整数 x 。
题解 1 - 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
    }
}
题解 2 - 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;
    }
};
题解 3 - 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;
                    }
                };
                
题解 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 - 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;
    }
};