全部评论
第三题维护一个负数的集合,以及负数的和与非负数的和。每次移动,抛开第一位,所有负数减一,正数加一,以此维护负数与正数的和。第一位变成相应的|a[i]-n|插入到负数的集合里。同时若负数的集合中存在负数变成0,则从集合中丢掉。复杂度nlog
第三题 55% sorry 参考吧 #include<iostream>
#include<algorithm>
#include<string.h>
#include<cstring>
using namespace std;
int getMin(int arr[],int length){ int sum = 0; for(int i = 1; i<= length;i++){ sum += abs(arr[i-1] - i); } return sum;
}
void change(int arr[],int length){ if(length == 0) return ; int temp = arr[0]; for(int i=0;i<(length-1);i++){ arr[i] = arr[i+1]; } arr[length-1] = temp;
}
int main(){ int n; cin >> n; int* arr = new int[n]; for(int i=0;i<n;i++){ cin >> arr[i] ; } int min = INT_MAX; int help=0; for(int i =0;i<n;i++){ help = getMin(arr,n); if(help < min) min = help; change(arr,n); } cout << min ; return 0;
}
出来问同学有说第三题是树状数组 搜了一下看是线段树的拓展看都不想看了所以我也不知道是不是 反正是我心目中的高端数据结构…… 然后第二题我java暴力直接过了 你是cpp选手吗🤣🤣🤣🤣java被当做“其他语言”可真爽 第三题直接暴力也过了55%才超时 但是选择题太难了 我一个本科生 设计模式自己看才看完创建型然后同学跟我说面试很少问让我别看了……*** wsm 数据库和操作系统这学期才开课也是都不会…… KMP是左神直通bat里说“有兴趣的同学可以去了解一下”的东西啊……我一点也没有兴趣 能力测试都是智商题 既不会 也不想做 上去闭着眼选的……选择题都不会基本也是这样 感觉面试机会--
90% sorry 参考吧~ #include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){ int n,m; cin >> n >> m; int* arr = new int[n]; int matrix[m][2]; for(int i=0;i<n;i++){ cin >> arr[i]; } for(int i=0;i<m;i++){ cin >> matrix[i][0] >> matrix[i][1]; } //定义m次的交换操作 for(int i=0;i<m;i++){ // cout << matrix[i][0] << endl; if(matrix[i][0] == 0){ sort(arr,arr + matrix[i][1],less<int>()); }else{ sort(arr,arr + matrix[i][1],greater<int>()); } } for(int i=0;i<n;i++){ cout<< arr[i] << " " ; } return 0;
}
技术编程这样看,应该是一样的题呢
是360还是360企业安全呢?
编程题让我答得怀疑人生 B卷
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享