一面: 自我介绍 两段实习项目仔细提问 基础: 1.列举10个git指令 git add . git commit " " git push git pull git log git status git merge git checkout git clone git revert 2.cp跟scp的区别 服务器内部复制,服务器之间的复制 3.搜索/home 目录下大于100M的文件 find ~ -size +100M 4.看当前目前目录下指定文件的日期 5.如何查看实时端口的连接 netstatus 6.给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]] 原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]] vector<vector>int reverseMatrix(vector<vector>int nums){ vector<vector<int>>res; int n = nums.size(); for(int i = 0 ; i < n;i++){ for(int j = 0; j < n;j++){ res[j][n-i-1] = nums[i][j]; } } return res; } 二面: 项目提问 编程: //给定一个已经排序的数组,给定目标值,希望找到是否存在对应数,如果找到其返回位置,没有返回-1; int searchNum(vector<int>nums,int target){ int left = 0, right = nums.size(); while(left < right){ int mid = (left + right)/2; if(nums[mid] > target){ right = mid; }else if(nums[mid] < target){ left = mid + 1; }else{ return mid; } } return -1; } 三面: 科研项目和实习项目提问 给一个场景测试用例设计 编程: // 有重复元素的整数数组,做排序和去重 [7 1 2 2 3 4 5 6] vector<int>sortSet(vector<int>nums){ set<int>s; for(auto n : nums){ s.insert(n); } nums.clear(); for(auto it:s){ nums.push_back(it); } quick_sort(nums, 0, nums.size()-1); return nums; } void quick_sort(vector<int>&arr, int l, int r){ if(l < r){ int m = partition(arr,l,r); quick_sort(arr,l,m-1); quick_sort(arr,m+1,r); } } int partition(vector<int>&arr, int l, int r){ int tag = arr[l]; while(l < r){ while(l < r && arr[r] >= tag){ r--; } if(l < r){ arr[l] = arr[r]; } while(l < r && arr[l] <= tag){ l++; } if(l < r){ arr[r] = arr[l]; } } arr[l] = tag; return l; } 四面: 1.自我介绍 2.项目提问,实习的哪个项目比较有收获,仔细说 3.是否了解cpu,gpu,如何衡量cpu,gpu 4. 多核,进程,线程的区别 5. 实习的压测是怎么做的 代码: 已知圆的定义是圆上一点到圆心的距离是半径r。 圆的周长 d=2∗π∗r 圆的面积 s=π∗r^2 请设计实验计算出圆周率的数值。 double caculatePi(){ int n1 = 0;// int n2 = 0; double pi; for(int i = 0; i < 100; i++){//d = 50 圆心(50,50) for(int j = 0; j < 100; j++){ n1++; if(pow((i-50),2) + pow((j-50),2) <= 50*50){ n2++; } } } pi = 4*(n2/n1); return pi; }