今天...早上10点赶去西电去参加了宣讲会,完了做了一个笔试....估计没什么情况。编程题不会做。下午又做了平安产险的笔试(比较随便,编程是一道Leetcode简单题吧---求最大连续子数组的和O(n)),晚上通知去第二天面试。
晚上刚做完多益的笔试,比较正经。
1. 20道选择,涉及算法数据库和操作系统方面的知识;
2. 6道填空题,涉及数据结构和算法;
3. 简答题:一个英翻汉,一个数据库,还有一个多线程和多进程的区别;
4. 一道编程:O(n)洗牌算法,忘记了,写了一个大于O(n)的。
贴一下简单实现的O(n)代码
1 //一种O(n)的洗牌算法 2 vector<int> randNUms(vector<int> &nums, int m) 3 { 4 int len = nums.size(); 5 if (len < m) 6 return {}; 7 8 vector<int> res; 9 for (int i = len - 1; i >= 0, m-- > 0; i--) 10 { 11 int r = rand() % i; 12 res.push_back(nums[r]); 13 int tmp = nums[r]; 14 nums[r] = nums[i]; 15 nums[i] = tmp; 16 } 17 return res; 18 }
总结:数据库SQL写的很烂,算法要注意DP和贪心。
原文地址:https://www.cnblogs.com/yocichen/p/11478558.html
时间: 2024-11-05 17:18:53