
秋招
愿风丶裁尘
这个作者很懒,什么都没留下…
展开
-
操作系统 死锁
死锁什么是死锁?产生死锁的原因?竞争资源进程间推进顺序非法死锁产生的4个必要条件解决死锁的基本方法预防死锁:1、以确定的顺序获得锁2、超时放弃避免死锁:银行家算法:检测死锁解除死锁:剥夺资源:撤消进程:死锁检测1、Jstack命令2、JConsole工具3、C++ 的死锁检测什么是死锁?所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。 因此我们举个例子来描述,如果此时有一个线程A,按照先锁a再获得锁b的的顺序获得锁,而在此同时原创 2020-09-09 14:28:35 · 538 阅读 · 0 评论 -
LeetCode 300 最长上升子序列
很经典的题目,可以被用到各种变式题目中。常规DP算法,复杂度较高每次都初始化dp[i] = 1,再比较nums[i] nums[j] (j 要从0到1 遍历,如果nums[i] 大于nums[j],就比较一下nums[j] +1 和 nums[i] ,取其最大值更新nums[i])比较好的做法就是 贪心 + 二分查找了官方这么解释的:如果我们要使上升子序列尽可能的长,则我们需要让序列上升得尽可能慢,因此我们希望每次在上升子序列最后加上的那个数尽可能的小。这种贪心的解法,实际上有一定简化:原创 2020-09-08 11:37:38 · 187 阅读 · 0 评论 -
9.5滴滴面试——栈实现队列
终面问了一下这个很简单的题,踩坑了。原因就是之前刷题刷的飞快,也没去评论区看大家的思路,甚至当时的力扣的官方解答也不是最优解(现在改过来了)坑:很容易想到要用两个栈模拟——不用思考,很容易想到一种:放元素的时候直接放主栈,删除元素时都移到辅助栈,删除辅助栈顶部元素,再把剩下的搬到主栈。求轻喷,当时我想都没想就写了这个思路,力扣过了,好了下一道。。然后面试时。。。就没有然后了。。。刚才的想法中,一次操作里,一个元素会被移动两次(你可以选择是插入还是删除,无所谓)优化的想法应该是一个元素在一次操作里只原创 2020-09-07 23:36:21 · 200 阅读 · 0 评论 -
9.3百度C++
第一题暴力过。第二题核心是二分法,我想直接调库所以存了很多个辅助数组再保存下标。整体逻辑是,要保证找到心仪角色人数最大,其实就是先给要求最低的人安排刚好不小于他要求的那个角色,再将这个角色erase掉。中间用了小技巧来记录下标。第三题是三维dp,想转移方程想了半天,没写完,贴个java大佬的第二题:#include<iostream>#include<vector>#include<queue>#include<unordered_map>#原创 2020-09-03 21:57:23 · 242 阅读 · 0 评论 -
计算机网络(4)面试题概要
这几个问题很常见,所以mark一下,往后再详细展开说。在浏览器地址栏键入URL,按下回车之后经历的流程/常见状态码/get请求和post请求的区别/Cookie和Session的区别面试常问一 在浏览器地址栏键入URL,按下回车之后经历的流程:1.DNS解析:浏览器会根据URL逐层查询DNS服务器缓存解析URL中的域名所对应的IP地址(DNS缓存从近到远依次是浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,从哪个缓存查找到对应IP则直接返回不再查找后面的原创 2020-09-03 16:40:04 · 252 阅读 · 0 评论 -
C++面试中STRING类的一种正确写法
C++ 的一个常见面试题是让你实现一个 String 类,限于时间,不可能要求具备 std::string 的功能,但至少要求能正确管理资源。具体来说:能像 int 类型那样定义变量,并且支持赋值、复制。能用作函数的参数类型及返回类型。能用作标准库容器的元素类型,即 vector/list/deque 的 value_type。(用作 std::map 的 key_type 是更进一步的要求,本文从略)。换言之,你的 String 能让以下代码编译运行通过,并且没有内存方面的错误。void foo转载 2020-09-01 23:25:40 · 174 阅读 · 0 评论 -
计算机网络(3)TCP的三次握手四次挥手
不想在每次面试前都搜一遍了,尽量整理地全一些好回顾复习用。TCP UDPTCP与UDP基本区别1.基于连接与无连接2.TCP要求系统资源较多,UDP较少;3.UDP程序结构较简单4.流模式(TCP)与数据报模式(UDP);5.TCP保证数据正确性,UDP可能丢包6.TCP保证数据顺序,UDP不保证 UDP应用场景:1.面向数据报方式2.网络数据大多为短消息3.拥有大量Client4.对数据安全性无特殊要求5.网络负担非常重,但对响应速度要求高TCP报头UDP报头TC原创 2020-08-30 22:16:30 · 188 阅读 · 0 评论 -
2020VIVO春招编程题 手机产量
菜鸡捡了最简单的一题做做。。。class Solution {public:int solution(int n){ int sum=0; int curgap=1; int i=1; while(n){ for(int j=1;j<=curgap;j++){ sum+=curgap; i++; if(i>n) return sum;} curgap++;原创 2020-06-24 19:35:31 · 726 阅读 · 0 评论 -
2020VIVO春招编程题手机解锁图案
菜鸡看到这个题目后,想法很多,实现感觉挺难。。但网上找的C++的实现都不太靠谱。看到一篇java实现的感觉逻辑清晰,为他点个赞,稍微改下C++。原文:JAVA实现改变上主要是数组定义,已经数组需要初始化;(不赋0初始化总是出错,有专业同学解释下吗)#include<iostream>using namespace std;class Solution {public: //用来存储两个键相连经过其他键情况 //vector<vector<int>>arr原创 2020-06-25 10:46:39 · 535 阅读 · 0 评论 -
VIVO春招编程题数位之积
解答区看到的。。。代码简洁,逻辑清晰,给大佬们跪了。。原题目现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个位、十位、百位 ……)之乘积等于n,若不存在则输出 -1。输入例子1: 36输出例子1: 49输入例子2: 100输出例子2: 455class Solution {public: /** * 输入一个整形数值,返回一个整形值 * @param n int整型 n>9 * @return int整原创 2020-06-25 11:09:46 · 251 阅读 · 0 评论 -
8.19华为笔试题目c++
别家的笔试总是做的很差,偏偏做华为的就有状态。。。首先得感谢牛客的@当可乐遇上曼妥思贴出来的题目1.给你N行M列的人,他们是一个方阵。左上角是(0,0),右下角是(n-1, m-1),最外圈的人顺时针报数,当他们报的数个位是7并且十位是奇数,就选出来。外圈报完了内圈接着报,一直到所有人都报完,问最后选出来的是哪些。要求是10<=n,m<=1000,如果输入不合法,那么就是返回空数组。好像很多人卡在空数组的输出上了。输入10 10输出[[7,9],[1,1],[8,2],[7,原创 2020-08-19 23:40:44 · 800 阅读 · 0 评论 -
OPPO8.29C++蜜汁题目
数论知识:求关于x的同余方程 ax≡1(modb)\ a x \equiv 1 \pmod {b} ax≡1(modb) 的最小正整数解。注意:(a*x)%mod=((a%mod)*x)%mod (a∗x)%mod=((a%mod)∗x)%mod\ (a *x)\%mod = ((a\%mod)*x)\%mod (a∗x)%mod=((a%mod)∗x)%mod输入: a b\ {a} \ {b} a b 以空原创 2020-08-29 21:50:44 · 345 阅读 · 0 评论