百度第一题为大家,启发一下

一度为0,主要是它的用例什么也看不出
通俗的讲,积分比的是终态,你可以先++,但最后必须回收哪些失效的积分
全部评论

相关推荐

10-15 22:44
厦门大学 Java
数组 a[n],每次+-交替测试用例数组 {1, 2, 3, 4}1+2, 2-3, 3+4:  {3, -1, 7}3-(-1), -1+7: {4, 6}4-6: {2}我们抽象出一个数组{a,b,c,d}起始我们的矩阵是1000010000100001然后经过一轮的加减加1 1 0 00 1 -1 00 0 1 1第三轮1 0 1 00 1 0 1最后一轮1 -1 1 -1规律不太够,也不知道这样暴力迭代矩阵能不能过但有一个优化思路我们再对5 *5的矩阵做规律观察1000001000001000001000001->1 1 0 0 00 1 -1 0 00 0 1 1 00 0 0 1 -1->1 2 -1 0 00 1 2 -1 00 0 1 2 -1->1 3 1 -1 00 1 3 1 -1->1 0 2 0 1我们发现从第三轮开始,每一轮的矩阵有很强的重复性,所以可能可以在这上面优化当然如果迭代完能ac那可以不考虑这层优化以下矩阵计算代码int n; cin>>n;    vector> matrix(n,vector(n,0));           //初始化成一个单位矩阵    for(int i = 0;i        matrix[i][i] = 1;    //加减交替滚动计算矩阵    //第一行加第二行,第二行减第三行    bool flag = true;    while(matrix.size() != 1){        for(int i = 0;i             for(int j = 0;j                if(flag) {                    matrix[i][j] += matrix[i + 1][j];                }                else{                    matrix[i][j] -= matrix[i+1][j];                }             }            flag == true? flag = false:flag = true;        }        matrix.pop_back();    }    for(int i = 0;i        cout    }
投递百度等公司10个岗位
点赞 评论 收藏
分享
第一题,注意区分奇偶的情况就行,比如n为4  k为2 此时ans为2 ,k为3时,ans还是为2这里和奇数的情况不同,奇数超了n/2直接减去超过的数量即可第二题,找规律可以看出来,第一次操作可以确定第一个字符,第2 ,3次操作可以确定第2  ,3个字符,所以直接用链表就行,代码具体核心为        ListNode last = pre;        pre = dummy;        for (int i = 1; i < s.length(); i ++) {     // 注意这里不能使用<=  因为最后一步 cur 会为null            ListNode cur = pre.next;            pre.next = cur.next;            pre = pre.next;            last.next = cur;            last = cur;            cur.next = null;        }第三题,一共13种情况,每一种情况自己都手算一次,,算出来一个对一个案例,至少1,2,3都是0;哈哈哈哈
投递百度等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务