自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 Leetcode 463. 岛屿的周长 (四个方向遍历找规律)

我们发现,岛屿的边的个数可以如下计算,如果从这一方格出发,遍历上下左右,如果周围出界了或者是水,那么这个周围就是一条边。因为题目保证了只有一个岛屿,所以可以不用DFS,直接对整个方格进行遍历就能解决。class Solution {public: int islandPerimeter(vector<vector<int>>& grid) { int dx[] = {-1,0,1,0}; int dy[] = {0,1,...

2020-10-30 23:06:28 186

原创 微软最新面试题10.30

总共四轮面试,一二轮平行面(过一个就行了),三轮lead面,四轮AA面10.21 约了两面一面:1. 自我介绍2. 撕代码: 暂时没有在leetcode上面找到,只能口述了 (微软经典面试老题)中文字符串转成数字 比如输入 一亿一千一百零一万一千一百零一 输出 111011101面试官人很好 因为c++处理中文不方便,就给我简化了一下, 亿用字母y代替, 万:w , 千:q,大概就是这个意思吧二面:1. 英文自我介绍2. 撕代码:...

2020-10-30 18:26:14 243

原创 2020年全国卷一两道选做题

选择题送大题在高中不是很常规,但是想清楚以后,很容易。

2020-10-30 12:29:26 139

原创 2020年高考物理大题部分解题思路分析

A,D均符合常理。。。第一问B,第二问C,。

2020-10-29 18:32:48 220

原创 科研进展和瓶颈

1. 计算内容可能不太够,再算一个激发?激发有什么有趣的故事?先问问师兄2. 简介应该按照QSL来写,还是flat band来写,还是edge state来写。3. 问一下VSe2的情况,争取一下。

2020-10-29 17:58:08 93

原创 操作系统基础: 键盘输入捕获以及中断

探索过程:如何设计响应键盘的整个链路?当你拿到一个问题时,需要冷静下来思考和探索解决方案。你可以查资料、看视频或者咨询专家,但是在这之前,你先要进行一定的思考和梳理,有的问题可以直接找到答案,有的问题却需要继续深挖寻找其背后的理论支撑。问题 1:我们的目标是什么?我们的目标是在 Java/JS 中实现按键响应程序。这种实现有点像 Switch-Case 语句——根据不同的按键执行不同的程序,比如按下回车键可以换行,按下左右键可以移动光标。问题 2:按键怎么抽象?键盘上一般不超过 100 个

2020-10-29 16:05:09 3887

原创 Leetcode 478. 在圆内随机生成点 (随机数生成题目)

这里我们仅利用C语言中的rand()函数,生成任意的一个随机整数如何根据这个rand()函数生成[-1,1]之间的随机浮点数,答案是a = 2*(double)rand()/RAND_MAX-1;这里可以用平移伸缩变换的方法,我们只需要生成在原点,半径为1的随机点,然后通过平移以及伸缩变换就能得到想要的结果。class Solution {public: double x, y, r; Solution(double radius, double x_cent...

2020-10-29 15:26:37 934 1

原创 Leetcode 461 汉明距离 (计算两个整数二进制位上不同1的个数)

将x和y异或后,统计二进制为1的个数即可。统计二进制为1的个数有很多方法,最简单的有移位法,还有lower_bit法,当然也可以直接调应APIclass Solution { public int hammingDistance(int x, int y) { return Integer.bitCount(x ^ y); }}...

2020-10-29 14:29:17 144

原创 CS50 HTML和CSS基础(介绍最简单的HTML和CSS)

最近简单HTML<!DOCTYPE html><html lang="en"> <head> <title>Hello!</title> </head> <body> Hello, world! </body><html>HTML中form表单<!DOCTYPE html><html lang=".

2020-10-29 00:25:11 267

原创 不是很常规的微软面试题

10月22号下午一点 一面 大约 1小时首先是自我介绍,可以英语可以中文,然后我选了英语自我介绍然后有一小段英文对话,问我想来微软的理由接下来是设计一个类中的put方法。类内部有一个int size属性,然后另个数组,一个是用于存放key的,另一个用于存放valuekey需要保持有序然后如果key相同可以直接覆盖,index相同但是key不同的话,有元素的value是惰性删除的,所以也可以覆盖然后我基本用二分写出来了,但是有些细节没写好,有两处错误,然后代码规范的问题,比

2020-10-28 22:08:23 118

原创 Leetcode 447. 回旋镖的数量 从暴力到hashmap优化

直接暴力的话就是O(N^3), 那么如果优化?对于任意一个点,循环枚举建立距离为key,个数为value的hashmap,然后统计完所有距离后再遍历一次HashMap,这样总的时间复杂度就是O(N^2)class Solution {public: int numberOfBoomerangs(vector<vector<int>>& points) { int res = 0; for(int i=0;i<...

2020-10-28 19:10:11 107

原创 在谈Leecode 473. 火柴拼正方形

这题显然是一个暴搜题,显然,总的火柴的长度必须是4的倍数,否则肯定无法构成正方形。另外,每一根火柴都必须被使用,每一个根火柴可以尝试放在4个边,因此火柴的个数就是层数,4个边就是每一层要枚举的东西。只要一根火柴四个边都不能放,就证明这种是不可行的。class Solution {public: bool makesquare(vector<int>& nums) { if(nums.size()==0) return false; ...

2020-10-28 18:35:17 109

原创 操作系统基础知识用户态和内核态的区别

这节课给你带来了一道非常经典的面试题目:用户态线程和内核态线程有什么区别?这是一个组合型的问题,由很多小问题组装而成,比如:用户态和内核态是什么?用户级线程和内核级线程是一个怎样的对应关系?内核响应系统调用是一个怎样的过程?……而且这个问题还关联到了我们后面要学习的多线程、I/O 模型、网络优化等。 所以这是一道很不错的面试题目,它不是简单考某个概念,而是通过让求职者比较两种东西,从而考察你对知识整体的认知和理解。今天就请你顺着这个问题,深入学习内核的工作机制,和我一起去理解用户

2020-10-28 15:44:10 8642 1

原创 操作系统内核知识介绍

什么是内核?说到操作系统,就必须说内核。内核是操作系统中应用连接硬件设备的桥梁。内核的能力对于一个现代的操作系统来说,它的内核至少应该提供以下 4 种基本能力:管理进程、线程(决定哪个进程、线程使用 CPU?);管理内存(决定内存用来做什么?);连接硬件设备(为进程、和设备间提供通信能力);提供系统调用(接收进程发送来的系统调用)。操作系统分层从上面 4 种能力来看操作系统和内核之间的关系,通常可以把操作系统分成 3 层,最底层的硬件设备抽象、中间的内核和最上层的应用.

2020-10-28 15:19:58 7198 2

原创 Python 进阶常用技巧,装饰器,Lambda表达式,异常处理

2020-10-26 12:24:06 155

原创 CS50.4 Python 和 JavaScript 网页编程 (第一课HTML和CSS)

HTMLCSSBootstrapSASSHTML代码的形式HTML内嵌CSS,CSS代码的形式

2020-10-26 12:06:08 119

原创 Leetcode 438. 找到字符串中所有字母异位词 (滑动窗口-时间复杂度O(N))

这里的技巧是如何维护住p字符串的技巧,以及如何统计区间字符串是否齐全class Solution {public: vector<int> findAnagrams(string s, string p) { vector<int> res; if(p.size()>s.size()) return res; unordered_map<char,int> dict; for(au...

2020-10-25 21:23:05 250 1

原创 面试高频智力题 100层楼两个鸡蛋找出临界点的最多次数 (直接分析法,非动态规划思路)

有一栋楼共100层,一个鸡蛋从第N层及以上的楼层落下来会摔破, 在第N层以下的楼层落下不会摔破。给你2个鸡蛋,设计方案找出N,并且保证在最坏情况下, 最小化鸡蛋下落的次数。(假设每次摔落时,如果没有摔碎,则不会给鸡蛋带来损耗)很容易陷入一个误区,就是用二分法,但要注意,鸡蛋个数是有限的,只有两个,所以二分是不对的。只有当蛋的个数是无限个的时候,才能二分。此时最小次数就是7次如果只有一个鸡蛋,那么只能一层一层的尝试,就需要仍100次如果两个鸡蛋,一个拍脑袋的想法就是,第一个鸡蛋在...

2020-10-22 14:27:43 2156

原创 Leetcode 博弈论先手必胜解题思路(Leetcode 292/877)

就一个一个的枚举,1-3块手头,先手必胜,4块手头,先手必负,5个石头,拿一个,让对手变成4个,那么必胜。8个石头,不管怎么拿,必负。因此可归纳出4的倍数的石头时,都必输。这种是最简单的博弈论问题,因为容易枚举,很容易找到规律。...

2020-10-22 12:30:13 2274 1

原创 两道编程智力题:扔鸡蛋和取数先手必胜博弈论博弈论问题

第二题参考博客https://labuladong.gitbook.io/algo/gao-pin-mian-shi-xi-lie/yi-hang-dai-ma-jie-jue-de-zhi-li-ti

2020-10-22 00:36:07 309

原创 微软最新面试题(

10.21 约了两面一面:1. 自我介绍2. 撕代码: 暂时没有在leetcode上面找到,只能口述了中文字符串转成数字 比如输入 一亿一千一百零一万一千一百零一 输出 111011101 (微软老题)面试官人很好 因为c++处理中文不方便,就给我简化了一下, 亿用字母y代替, 万:w , 千:q,大概就是这个意思吧二面:1. 英文自我介绍2. 撕代码:leetcode 22 , 297两轮的面试官都很好,讲话都很温柔55555 希望微软能给个...

2020-10-21 23:50:03 175

原创 Leetcode 451 根据字符出现频率排序 (Lambda 表达式自定义排序规则)

一个直接的思路是直接重写sort的排序规则, 这里用字典统计词频,然后直接通过lamda表达式根据词频排序,有一个细节需要注意,lamda拿到外面的hashmap,需要使用特别的方式class Solution {public: string frequencySort(string s) { unordered_map<char, int> dict; for (const auto &c : s) { ...

2020-10-21 16:20:34 263 1

原创 Leetcode 443. 压缩字符串 经典双指针算法

用经典的双指针操作,这里实际上是三个指针在动,最前面的是答案数组kclass Solution {public: int compress(vector<char>& chars) { int k = 0; for(int i=0,j=0;j<chars.size();j++){ while(j<chars.size()&&chars[i]==chars[j]) j++; ...

2020-10-21 12:56:26 84

原创 量子力学第二次作业题目分析

1. 可以没有分离过程,直接给出能量和波函数a=b能级的简并性,不仅仅是n和m交换下二重简并,还有可能更多的情况,比如n=7,m=1和n=5,m=5,以及n=1,m=7三重简并等情况。参考答案只要求考虑基态和第一激发态即可。2. (3)参考答案有符号错误3. 如果分开讨论E<V0和E>V0当0<E<V0时,反射系数严格等于1,透射率T严格等于0,这就是E<<V0的情况。当E>>V0时,直觉来说透射率就是1,反射率为0,参考答...

2020-10-19 18:23:49 530

原创 科研进展总结10-17

1. pi flux缺陷模型加上SU(4) Hubbard中,出现三种铁磁序,对应的掺杂浓度不同2. ToDo:确定一下有限宽度下gap的大小3. 给定化学势后的相图:4. ToDo:双缺陷的耦合

2020-10-17 00:49:43 121

原创 SU(4)掺杂相图

化学势 电子密度 序 能量0 29 1- flavor费米面下 -0.4928242532631260 30 ...

2020-10-17 00:39:04 121

原创 论文快速写作技巧

我们这个方向的八股科研文分为以下几个部分AbstractIntroductionTheory and modelsResults and discussionsConclusions其中,最容易写的是模型和方法部分,这一部分相对固定,而且是按照逻辑推导来写。结果和讨论部分采用看图说话的方式。首先,制作好所需要讲解的图,然后先写出每张图下面的小字,然后用文字描述图片所要讲述的内容。最后,再写结论和摘要。...

2020-10-14 22:31:56 138

原创 2020年高考物理两道解答题

2020-10-14 19:23:50 102

原创 2020年高考8道理综选择题

不熟悉点:1. 高压输电2. 完全弹性碰撞快速计算3. 对称性分析,这个拔高(done)DABDR=mv/qB0.1 mol43.15 * 1.6*10 -(13)* 10^22 /6C除了镜像对称还是一个球对称性在里面。BC总动量始终为0m1v1+m2v2 = 0m1v1>=20m1v1 + = + m1'v1'...

2020-10-14 18:05:27 137

原创 毕业工作规划

一. 科研任务和老板沟通好,问清楚毕业要求。按部就班开始做。二. 完成选调生报名工作。三. 使用mac录屏的方法讲解高考题,完成10套高考题,具体视情况而定。四. 秋招互联网已经结束,进入签约阶段,做好思想准备,把握机会。...

2020-10-14 14:37:54 116

原创 Leetcode 406. 根据身高重建队列 (构造贪心排队策略)

这道题目有些难度,关键的突破点是排在这个人前面的身高大于或等于h的人数为k,所以如果一个人身高比这个人矮,排在前面,其实相当于看不见。所以有了一种插队策略,假设我们按身高从大到小排序,然后身高相同时,k从小到大排序。然后people[i] 就插入到people[1]的位置。这样的策略总是合法的可行的。这样的时间复杂度是O(n^2)class Solution {public: vector<vector<int>> reconstructQueue(v..

2020-10-12 18:55:01 261

原创 Linux服务器开发入门: Linux下软件的安装

学习总结1. 能用apt/yum安装,就用apt/yum安装,多看官网给的第一手资料。2. 学习Docker技术。3. 万不得已,在尝试源码编译安装。在 Linux 上安装程序大概有 2 种思路:直接编译源代码;使用包管理器。受开源运动影响,Linux 上很多软件都可以拿到源代码,这也是 Linux 能取得成功的一个重要原因。接下来我们先尝试用包管理器安装应用,然后再用一个实战的例子,教你如何编译安装nginx。包管理器使用Linux 下的应用程序多数...

2020-10-12 15:16:16 159

原创 Python 词频统计字典使用小技巧,以Leetcode 383为例子

在Python词频统计中,往往会判断一个char存不存在,如果存在value++,这里一种默认值的写法是dict.get(c,0), 第二个值是默认值。class Solution: def canConstruct(self, ransomNote: str, magazine: str) -> bool: char_dict = {} for c in magazine: char_dict[c] = char_dict.g..

2020-10-11 23:23:10 288

原创 Leetcode 380. 常数时间插入、删除和获取随机元素 (使用哈希表和数组组合,并且交换到数组最后删除)

只实现前两个功能,用set即可,getRandom等价于随机访问,需要用数组来实现, 所以改进的方案就是组合hashmap和数组,让hashmap实现从key到index的映射,然后真val还是存放在数组中。那这样删除的时间复杂度就是O(N), 用一种改进方案,每次与最后的数交换,等价于删除最后一个数。这样的时间复杂度就是O(1)class RandomizedSet {public: /** Initialize your data structure here. */ u..

2020-10-11 21:53:22 170

原创 Leetcode 452. 用最少数量的箭引爆气球 (最长上升子序列or贪心)

这道题目,直接的想法就是找出最大不重复区间,这个区间数就是答案,这样,用最长上升子序列做法的时间复杂度就是O(N^2), 可以优化到O(nlogn)还有一种思路是贪心的思想,先按照区间左端点排序。维护一个射击窗口left,right。初始射击窗口就是第一个气球x1,y1对于第i个气球,首先判断right>=xi, 如果满足,那么这个气球一定可以射到,...

2020-10-10 21:02:12 166

原创 Leetcode 473. 火柴拼正方形: 回溯剪枝搜素

显然,如果数字之和不是4的倍数,那么一定不能拼成功,直接返回。最后拼接的结果就是4个sum/4的边长,那么如何来搜索呢?搜索的方法是每次看0到3号桶,然后层级是index,需要把所有nums,都放入到0-3号桶中,并且把桶放满level1 1 2 3 4level2 1 2 3 4level3 1 2 3 4....leveln 1 2 3 4如果不能凑成,火柴一定不会用完class Solution {pu...

2020-10-10 19:25:29 253

原创 再谈微信抢红包算法

发出一个固定金额的红包,由若干个人来抢,需要满足哪些规则?1.所有人抢到金额之和等于红包金额,不能超过,也不能少于。2.每个人至少抢到一分钱。3.要保证所有人抢到金额的几率相等。总的来说就两种方法1. 看上去拼手速的算法:线段切割算法2. 比较公平的算法,二倍均值法微信采用二倍均值法实现,说了是拍脑袋的算法,没有去玩统计证明。(但是可以证明,每个人抢到的金额还是等可能的)为什么这么说呢?让我们看一个栗子:假设有10个人,红包总...

2020-10-10 17:58:04 1525 2

原创 CPU寻址以及内存对齐

内存寻址‘Golang结构体内存对齐

2020-10-10 16:57:53 164

原创 Golang slice基础知识详解

数组和切片的联系

2020-10-10 16:42:14 86

原创 Golang 字符串内容知识总结

1. 一个字节,8个Bit,可以存0到255共256个数,采用编码的方式存字符串,C语言就是采用这种方式2.Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。Java采用Unicode编码3. UTF-8编码( 不定长编码,Python,Golang)4. C 字符串的存储5. Go语言是这样存储的6. Golang string内存只读,不可修改...

2020-10-10 13:22:26 203

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除