- 博客(4)
- 问答 (1)
- 收藏
- 关注
原创 Leetcode Dijsktra问题到BFS的转换
老规矩上题号。 1102 743 1129 1514 1631 787.其中787比较复杂,推荐最后一个练习。 还有个1334(这题是用floyd算法解决的,因为他不是单源最短,是多源最短,我认为过于textbook了这种题,背了floyd就是秒杀) Leetcode上涉及Dijsktra算法变形的题还是不少的,我是很讨厌背算法的人,因为我发现不管我再怎么背,面试紧张起来我还是会忘掉,因为面试的时候我会下意识去相信我背的东西而不是我所理解的东西,万一背错了,那就跪了。你可能会问Dijkstra算法理解了
2021-04-26 06:12:51
151
原创 LeetCode N-sum的问题总结
首先列出题号 15 16 18 259 454, 这是推荐的练习顺序。 N Sum也算是非常典型的一类问题了。基本的算法就是考察2-pointer在已排序数组中的使用。为什么我不推荐用hashset,因为在这一类问题中,2-pointer更加地general,而且代码的可读性更好。 还有比较重要的一点,2-pointer能够处理一些变体,比如不是完全的等于,而是小于或者大于(16题就是一个很典型的例子,你如果用hashset做,可以做,但是很容易出错)。但是不可能一个2-pointer所有题目通用。2-p
2021-04-25 02:18:34
117
原创 C语言的复杂声明
typedef的作用是类似于声明一个变量,但是这个变量就代表了这种类型的别名。 比如 typedef int* (*p)(int) 则p就是这样一种函数指针的别名,这种函数的原型是 int * func(int); 对于复杂指针的理解遵从右左法则,从最里面的变量名开始理解,遇到括号改变阅读方向。*代表指针,()代表函数,[]代表数组。 其中括号的优先级最高,其次是[],最后是*。比如
2017-03-04 13:27:15
407
空空如也
双系统下的linux如何安全卸载
2015-09-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人