自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java和c++语法对比列表

java和c++语法对比列表把自己周末突击学习c++的笔记贴在这里,之后空了再整理补充。 java c++ main() // every function must be part of a class; the mai...

2020-07-28 04:32:40 385

原创 负载均衡-Load balancer

recruiter小姐姐把面试范围画了个重点,于是我来抱个佛脚。学习一下load balancer把流量分给各个server的原理和方法。什么是Load balancerefficiently distributing incoming network traffic across a group of backend servers,把流量高效地分配给后端server。基本职能:保证没有server overworked万一某个server down,分给其他的一个新的server添加进来,

2020-07-02 15:05:24 936

原创 Java-WrapperClass及其转化

java里的变量分为primitive type和reference type两种。primitive type是int, char, double啥的,reference type(Wrapper Class)就是Integer, String这些。我一直对reference type互相转化有点记不住,看了几个视频学习了一下。发现是因为对reference type(Wrapper Class)原理就没有理解。1.基本原理:1.1. 8 种基本的wrapper class在youtube上看了个

2020-07-02 10:49:13 851

原创 template-TestCase模板-Java

写了个自己用来测试算法的模板(java)。贴在这里以后好找哈哈。Array把下面的代码存为"/Users/beibei/Desktop/Array.java",别忘了文件名和类名一致。然后在文件所在的directory直接javac, java,就行了。[beibei: ~/Desktop] javac Array.java[beibei: ~/Desktop] java ArrayWelcome to Array Playground!input len=52,3,5,7,9,outpu

2020-06-22 04:43:13 286

原创 linkedList-cutListHalves切分链表

链表有很多不同的题目,这里写那些由一个链表切分成两个或多个链表的问题。题目简介86. Partition List143. Reorder List148. Sort List234. Palindrome Linked List328. Odd Even Linked List86. Partition ListInput: head = 1->4->3->2->5->2, x = 3Output: 1-&g

2020-06-21 07:02:54 198

原创 时间复杂度-们

一些选择题,会给一小段代码,求时间复杂度。或者有些代码写完,会要求分析时间复杂度。这里写一些例子,以后遇到不断补充。基本的1 – Constant Timelook up table (hashtable)如果是完美hash,则worst是O(1)如果不是完美hash,则worst是O(n)on average, O(1)log (log N)Shrinking by a Square Rootprocedure A(n)begin if (n < 3) return 1

2020-06-21 05:29:49 188

原创 design-设计iterator

iterator:提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。每次调用next(),只返回下一个元素,且“记住”这个位置,下回调用next(),还要接着从这里resume。题目简介281. Zigzag Iterator遍历多个list284. Peeking Iterator遍历list604. Design Compressed String Iterator遍历解压缩之后的string900. RLE Iterator

2020-06-20 15:47:11 146 1

原创 DP-2D-matrix-二维DP

二维DP大概就是dp[i][j]和它的“上”,“左”,“左上”的值有关系。有一大类fuzzySearch有关的题都是string上的二维DP,本篇先不写那个,写单纯的故事setting是matrix的。题目简介62. Unique Paths多少条路63. Unique Paths II多少条路-带障碍64. Minimum Path Sum最短路120. Triangle杨辉三角221. Maximal Square求最大正方形85.

2020-06-20 15:12:29 284

原创 linkedList-reverse翻转链表

这篇是翻转链表的一些题。题目简介206. Reverse Linked List普通翻转24. Swap Nodes in Pairs两个一组,普通翻转92. Reverse Linked List II依次从后端拿出元素插入前端,m到n25. Reverse Nodes in k-Group依次从后端拿出元素插入前端,每k个206. Reverse Linked ListInput: 1->2->3->4->5->NU

2020-06-17 12:33:29 646

原创 linkedList-cycle链表环F*CycleDetection

Floyd cycle detection判圈算法,是一个可以在有限状态机、迭代函数或者链表上判断是否存在环,求出该环的起点与长度的算法。题目简介141. Linked List Cycle判断链表是否有环142. Linked List Cycle II找到环的起始点287. Find the Duplicate Number迭代函数202. Happy Number迭代函数141. Linked List Cycle龟兔赛跑,若赶得上就是有环。

2020-06-17 10:03:22 121

原创 twoPointer-SlidingWindow滑动窗口-明显版

本文写几个比较明显需要用SlidingWindow的。3. Longest Substring Without Repeating Characters76. Minimum Window Substring

2020-06-16 14:40:34 135

原创 BFS-tree类-进阶版

BFS有两种用途(我分的类哈哈),1)tree; 2)graph。本文写tree的,且稍微有点变化的。题目简介339. Nested List Weight Sum364. Nested List Weight Sum II

2020-06-10 14:26:15 598

原创 BFS-tree类-用queue的基本款们

BFS有两种用途(我分的类哈哈),1)tree; 2)graph。本文写tree的。tree的挺多的,这篇写基本款们,就是简单的。题目简介102. Binary Tree Level Order Traversal最基本103. Binary Tree Zigzag Level Order Traversal加一个奇偶行flag107. Binary Tree Level Order Traversal II从叶子到根199. Binary Tree Right

2020-06-10 14:25:41 203

原创 socket编程-IP地址/网络字节转换函数inet_pton(),htonl()等

这是第一篇记录工作中的东西的博客,鉴于我这个菜鸡也接触不到啥公司机密,以后不涉及具体产品功能啊实现啊架构啊啥的,就记录到这里,算是http://www.360doc.com/content/18/0315/13/51484742_737206686.shtml...

2020-06-05 16:59:47 542

原创 DFS-Backtracking回溯-经典排序组合

Backtracking有很多很多不同场景的问题。Backtracking其实就是DFS + 剪枝。就几乎是枚举,然后either发现满足条件的branch,or当前branch已经不可能符合条件了剪枝放弃。写一下经典排序组合问题吧。题目简介candidates是否有重复元素元素是否允许重复使用有start39. Combination Sum求和为k的组合元素distinct允许多次使用有40. Combination Sum II求和为k的组合元素可以有重

2020-06-05 09:23:40 204

原创 array-用下标来标记index-as-mark

刚刚写了bucket sort,就是利用下标来排序。而这里的一些问题,是用下标来实现别的功能的,比如“标记”,标记某个元素是否出现过。注意一个区别,这类问题是:利用“下标”来记录“元素值本身”,而不是利用“下标”来记录“下标”(参考73.Set Matrix Zeroes,我原来以为73属于这一类其实不是)。题目简介442. Find All Duplicates in an Arrayindex-as-mark448. Find All Numbers Disappeare

2020-06-04 14:37:26 185

原创 sort-BucketSort桶排序

164. Maximum Gap274. H-Index

2020-06-03 16:34:16 441

原创 tree-verticalTraversal纵列遍历

写两个纵列遍历tree的吧。可以recursive,也可以BFS,要看具体题目要求(同一个纵列的元素怎么排列,同一个位置的元素怎么排列,等等)。314. Binary Tree Vertical Order Traversal一列一列遍历,从上到下。如果位置完全重叠的两个节点,就先左后右。本来觉得recursive的思路很顺,维护一个offset来定位“第几纵列”。试了一下,然而不对,比如下面这个failed test case:【小工具】有一个tree visualizer的python s

2020-05-31 15:37:00 213

原创 linkedList-clone制造deep copy

有两个clone图和链表的题。基本的思路是,用一个hashmap来维护新旧对应的节点的映射关系。138那个题除了这种基本方法,还可以不用hashmap直接修改指针。133. Clone Graph给一个联通无向图的reference。node的定义:class Node {public int val;public List neighbors;} 求一个这个图的deep copy。思路是:由旧图的reference point开始遍历旧图(数据结构给的是neighbor list,就用

2020-05-26 12:37:00 314

原创 BST-找最接近的值

题目简介700. Search in a Binary Search Tree找确切值270. Closest Binary Search Tree ValueBST中找最接近的1个272. Closest Binary Search Tree Value IIBST中找最接近的k个742. Closest Leaf in a Binary TreeBT中找最接近的1个700. Search in a Binary Search Tree先用一个找确切...

2020-05-26 07:09:21 307

原创 tree-inorder中序遍历

tree的中序遍历“左-根-右”。94. Binary Tree Inorder Traversaliterative的思路:“左根右”,如果左子树不为空,就一直向左,路上经过的节点都暂时不访问,因为“左-根”。暂时不访问的节点都放入栈里。等到了leftmost,没有左孩子了,就可以访问当前节点了,“根”。当前节点访问完,就该访问“右”了,检查一下有没有右:有右:直接访问右。注意此处只是往右走一步,因为右孩子也可能有他的孩子,还要遵循in-order的访问规则。往右走一步之后,就

2020-05-26 06:30:00 705

原创 twoPointers-palindrome切分回文串

这篇是回文串的另外一篇,专门介绍“切分”。回文串的题给我感觉都有点小brute-force呵呵,因为检验回文串似乎没什么特别好的trick。之前那篇求回文子串的,647,5都是O(n^2),一个一个下标来向两边展开。这篇的也是每一个下标都要切,然后向两边展开。题目简介131. Palindrome Partitioning切成每部分都是回文串:求所有结果, backtracking132. Palindrome Partitioning II切成每部分都是回文串:求最少几刀,

2020-05-24 08:49:06 135

原创 twoPointers-左右各扫一遍

上一篇twoPointers-左右扫TrapWater系列,是与TrapWater相关的需要从左和右分别扫的题,这篇也是需要左右扫的,135. Candy一行有N个小孩,每个小孩有个“分数”。有两个规则:1)每个小孩至少有一颗糖2)如果一个小孩比旁边小孩分高,则糖也要比他多。Input: [1,0,2],Output: 5Explanation: You can allocate to the first, second and third child with 2, 1, 2 candies

2020-05-24 06:34:49 168

原创 twoPointers-palindrome回文子串

关于回文串,有很多问题。这一篇是关于回文串的基本操作和回文子串问题。题目简介125. Valid Palindrome验证回文串680. Valid Palindrome II能否(允许删一个字母)得到回文串647. Palindromic Substrings求回文子串个数5. Longest Palindromic Substring求最长的回文子串(连续)516. Longest Palindromic Subsequence求最长的回文子串(可

2020-05-22 14:15:22 158

原创 twoPointers-左右扫TrapWater系列

TrapWater系列的题,思路是对每个given位置,要求从左右扫到这个位置的“最大/小值”,或者“累积计算结果”,等等,总之是一定要从边上撸过来……于是把类似思路的题总结了一下。题目简介11. Container With Most Water42的铺垫42. Trapping Rain Water求左/右到当前点的最高柱子238. Product of Array Except Self求左/右到当前点的累积乘积84. Largest Rectangle

2020-05-21 09:18:41 175

原创 graph-TopologicalSort拓扑排序

一般我们认为,TopologicalSort是BFS中的一种。其实DFS也可以做拓扑排序,只是比较难理解。拓扑排序适用于有向无环图(Directed Acyclic Graph)。有一组数据,其中一些数据依赖其他,问能否按依赖关系排序(被依赖的排在前面),或给出排序结果。...

2020-05-20 13:50:29 322

原创 interval-合并MeetingRoom系列

关于intervals有很多很多故事可以讲。各个interval是否重叠,重叠几层,重叠的长度,是否排序过,是Offline的还是streaming的(本文都是offline的)……这里的几个是比较基本的,之后再补充。题目简介56. Merge Intervals基本操作:merge57. Insert Interval基本操作:insert252. Meeting Rooms判断是否重叠253. Meeting Rooms II求最多重叠几层1229

2020-05-18 15:32:44 340

原创 graph-Dijkstra最短路径

Dijkstra算法:解决“边权重非负”的加权“有向图”的“单起点”最短路径问题。思路:以起始点为中心向外层层扩展,广度优先搜索BFS(用queue)直到扩展到终点为止。787. Cheapest Flights Within K StopsInput: n = 3, edges = [[0,1,100],[1,2,100],[0,2,500]]src = 0, dst = 2, k = 1,K: 最多中转次数,求最小的机票总价 Output: 200凡是图的题,首先很有可能输入是边矩阵,不

2020-05-17 13:44:51 222

原创 stack-计算器calculator系列

题目简介150. Evaluate Reverse Polish Notation简单的使用栈的±*/运算224. Basic Calculator1+(4+5),带括号,只有加减227. Basic Calculator II3+2*2,加减乘除,没有括号772. Basic Calculator III2*(5+5*2)/3,加减乘除都有394. Decode String3[a]2[bc],数前内容后726. Number of Atoms...

2020-05-17 08:12:48 405

原创 OOD-设计电梯

设计电梯题目要求:没说啥,就让设计一个电梯控制系统,人手里的pad来输入自己去几楼,不用考虑电梯分配算法(认为可以自动获得),多个电梯距离自己等距离。没别的啦,细节需要和面试官讨论。本来面试觉得这个题答得挺好的,结果这一轮挂了呵呵。于是学习一下怎么答OOD的问题吧。(这个作为一个例子,之后再写其他的)我百度谷歌了一会,下面是一些笔记和体会啦:(TODO: 看了很多很复杂的码,等回头自己写一个完整的码)不要纠结在故事本身,答题要套要点(感觉和语文考试答主观题一样):先有几个class,每个内.

2020-05-15 14:31:21 1157

原创 stack-单调栈

单调栈:从栈底元素到栈顶元素呈单调递增或单调递减(本篇的貌似都是递减栈)739. Daily Temperaturesgiven the list of temperatures T = [73, 74, 75, 71, 69, 72, 76, 73], your output should be [1, 1, 4, 2, 1, 1, 0, 0]. 求要等多少天才能等到变暖需要求每个点之后,比它大的第一个点。如果就brute force,找73的变暖日,从74扫到底,…,这样时间复杂度O(n ^

2020-05-15 13:56:18 167

原创 Knapsack-DP-重量和价值一致

这一篇写个背包吧。背包就是“给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。”这里的几个题,貌似都是“重量”就看做“价值”,并没有分别给出。应该是简单的情况。以后遇到“重量”和“价值”有各自的值的,再另外写一篇吧。322. Coin ChangeInput: coins = [1, 2, 5], amount = 11 Output: 3Explanation: 11 = 5 + 5 + 1 用coins的面值凑总数amount。求最少需要的

2020-05-14 15:34:52 478

原创 DP-两个并列DP-HouseRobber系列

这篇是“两个并列DP”的第一篇,先写典型的HouseRobber系列。特点是:需要分情况讨论当前的选择、做法是:维护两个DP,维护的时候两者互相影响。偷当前元素,robCur不偷当前元素,notRobCur198. House RobberInput: [1,2,3,1] 不能偷相邻的,求最大和。Output: 4Explanation: Rob house 1 (money = 1) and then rob house 3 (money = 3).Total amount you

2020-05-14 09:35:31 139

原创 DP-拓展之前的chain

大致思路是:在当前的位置,去试图和已经存在的chain(用DP来记录)连接,来得到更长的chain,直到达到最终目的。128. Longest Consecutive SequenceInput: [100, 4, 200, 1, 3, 2] 求最长的连续(数轴意义上)序列长度 Output: 4Explanation: The longest consecutive elements sequence is [1, 2, 3, 4]. Therefore its length is 4.用DP

2020-05-13 13:24:27 164

原创 HashMap-用hashmap求和为K

用hashmap保存“还差多少”,或者“累计值”,用于后面的查询。1是求一个组合即可,一旦查到key就bingo。保存“还差多少target-nums[i]”作为key,下标i作为value。注意存和查是不同的!: 存target-nums[i],查询nums[i]。560是求一个连续子数列的和为target,思路是求当前位的累计和sum,保存“sum"作为key,“当前位之前已经有多少个子串和是sum-k” 作为value。有点类似于DP的意思。注意存和查是不同的!: 存sum,查询sum

2020-05-13 12:43:04 431

原创 DP-求方法数-加法/乘法原理

DP-求方法数-加法/乘法原理先用一个简单的例子(70),来说明这个类别的特点。70. Climbing Stairs一共n阶楼梯,每次可以爬1阶或2阶,求一共多少种方案这种求总方案的,很容易想到用DP。dp[i]定义为:爬到第i阶的总方案数想小学学过的加法原理和乘法原理:加法原理:从武汉到上海有乘火车、飞机、轮船3种交通方式可供选择,而火车、飞机、轮船分别有k1,k2,k3个班次,那么从武汉到上海共有 k1+k2+k3种方式可以到达。对应本题:第i阶可以从i-1阶来,或者i-2阶来,

2020-05-13 11:45:08 296

原创 DP-求子数列最大和/积-MaxEndHere

@“全是套路”-leetcode总结DP-求子数列最大和/积-MaxEndHere这是我写的第一篇leetcode的数据结构算法练习的总结。各个论坛上有很多总结leetcode的解法的博客,但很多是按照作者的理解分类的。这里我按照我自己的思路总结,通过写可以梳理一遍,让自己思路更清晰。有些题,表面看上去不一样,仔细想想,就会觉得,“脱了马甲我还认得你!”今天是DP动态规划问题的一个子类,就是在某个点,若之前的累积结果已经不能再产生积极的contribution的情况下,要把之前的舍弃。53和121

2020-05-13 11:05:12 200

空空如也

空空如也

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

TA关注的人

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