题解 | #数组元素反转#

数组元素反转

https://www.nowcoder.com/practice/8c9793ae96974a9ebb153d90ef31d357

核心思路:两个数交换 = 两个数的和,然后通过减去另外一个数来得到这个数
a = a + b; 
b = a - b; 
a = a - b;

方法缺陷:两个数的和可能会越界。(数值小的时候可以用)。

应用场景:两个数交换、数组翻转等等。

附 数组元素翻转源代码:
#include <iostream>
using namespace std;

int main() {

    int arr[6] = { 0 };

    int len = sizeof(arr) / sizeof(int);
    
    for (int i = 0; i < len; i++) {
        cin >> arr[i];
    }

    cout << "[";
    for (int i = 0; i < len; i++) {
        if (i == len - 1) {
            cout << arr[i] << "]" << endl;
            break;
        }
        cout << arr[i] << ", ";
    }

    // write your code here......
    // 数组翻转 - 基于 swap 不需要第三个变量
    for (int i = 0,j=len-1; i <=j; i++,j--) {
        arr[i] += arr[j];  
        arr[j] = arr[i]-arr[j];
        arr[i] = arr[i]-arr[j];        
    }


    cout << "[";
    for (int i = 0; i < len; i++) {
        if (i == len - 1) {
            cout << arr[i] << "]" << endl;
            break;
        }
        cout << arr[i] << ", ";
    }

    return 0;
}


#java求职##字节测试开发一面面经#
全部评论

相关推荐

牛客765689665号:没有实习是硬伤,央国企看学历
点赞 评论 收藏
分享
28小凳也想实习:项目不用一个业务一个轮子吗,刷牛客好多人说要一业务一轮子
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务