自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode 131. Palindrome Partitioning

这道题可以用dp来解决。对任意一条字符串,遍历其可能被分割的每个位置,检查分割点后面是否是回文串,而创建列表存储分割点前面子串所有可能的分割。代码中dp[i]存储的即为s[0:i] 所有的回文分割字符串。所以对于新的位置i,遍历0~i-1之间的每一个位置j,如果s[j:i] 为回文串,则把dp[j]存储的所有分割与s[j:i]连接并append到dp[i]中,这样就得到了s[0:i] 的所有分割。最后输出dp[-1]即可。代码:class Solution(object): def p

2021-01-22 05:35:22 178 1

原创 LeetCode 1305 All Elements in Two Binary Search Trees

好久没刷题了,好不容易闲了下来回来刷道题。我现在用的是python题目:Given two binary search treesroot1androot2.Return a list containingall the integersfromboth treessorted inascendingorder这道题很简单,只需要中序遍历就可以。我开始居然TLE了,后来发现是我遍历的时候把值放在dict里作为key,然后value作为出现次数,最后把值从sorted k...

2020-12-26 05:34:59 152 3

原创 LeetCode 85 Maximal Rectangle

这是一道很难的题,开始想用dp来解决,想了半天也没想通转移方程该怎么写,看了别人的博客才发现这道题可以和84题Largest Rectangle in Histogram 关联起来。把矩阵从上到下一行一行去切,只看上面的部分就可以发现其实可以转化成对每一行球第84题解的过程。但是我第84题是直接搜索每一列然后再左右搜索找到比那一列小的列为止然后计算通过的,这种复杂度比较高,我看了一下别人的解法,可...

2018-08-04 18:47:38 132

转载 转载:TCP的三次握手与四次挥手(详解+动图)

最近在看计网的时候关于TCP的连接看到一篇很不错的文章,转载一下,原文链接是:https://blog.csdn.net/qzcsu/article/details/72861891背景描述通过上一篇中网络模型中的IP层的介绍,我们知道网络层,可以实现两个主机之间的通信。但是这并不具体,因为,真正进行通信的实体是在主机中的进程,是一个主机中的一个进程与另外一个主机中的一个进程在交换数据。...

2018-08-04 15:12:36 128

原创 LeetCode 78. Subsets

本题的题意是根据输入构造输入能构成的所有的子集。很明显可以用回溯法来解决,一个数字一个数字地遍历,然后从0到最大长度决定子集的长度len,然后进行dfs开始搜索,加入当前元素后再从当前元素的后一个元素开始加入长度为len-1的子集,依次遍历下去即可。代码如下:class Solution { public List<List<Integer>> subse...

2018-08-04 14:33:30 300

原创 LeetCode 57. Insert Interval

这道题是在一个区间的集合中插入一个区间后输出新生成的区间。我对这道题就是直观的解题思路:二分查找找到要插入的区间的前后端点在整个区间集合中的位置,然后删掉中间的区间,并在比较插入区间的端点值与之前的区间端点的大小之后插入新的区间。因为存在要插入的端点在已有的区间内部和在已有区间外两种情况,所以我在二分查找的时候多记录了一个这个,在数组的第二个元素中表示。根据这个,在二分查找时,如果在区间内部,...

2018-07-29 17:04:19 206

原创 LeetCode 63. Unique Paths II

题目的大意是根据输入的迷宫格子的情况输出从起点到终点可以有多少条路径。因为只能从左向右或从上到下行进,很自然地想到可以用动态规划来解决,dp[i][j]表示从起点到格子(i,j)最多的路径数量。所以,到一个格子的路径数即为起点到其上面格子的路径数和到左边的路径数之和,如果格子为障碍物,则dp[i][j]=0代码如下:class Solution { public int uniq...

2018-07-29 14:00:02 111

原创 LeetCode 42 Trapping Rain Water

这是一道很有趣的问题,需要根据输入的所有柱子的高度求出其能容纳的雨水的最大容量。在观察这个数据的性质后,我发现,雨水的容量都是由其中较高的两根柱子决定的,如果其中没有柱子,容纳的雨水直接就是长*高得到的矩形;如果有比他们矮的柱子,那就减掉这个柱子占有的空间,也就是它的高度即可。所以我的思路是从前至后记录最高的两个柱子,每次出现一次比之前高或者和之前一样高的柱子就计算一次,用二者较短的高度乘以二者之...

2018-07-28 19:55:14 123

原创 Leetcode 10 Regular Expression Matching & Leetcode 44 Wildcard Matching

这两道都是类似正则表达式匹配的问题,放在一起mark一下Problem 10 Regular Expression Matching参考 https://blog.csdn.net/hk2291976/article/details/51165010这道正则表达式匹配的问题,直接查的博客,看到一篇思路比较好的,包括回溯和动态规划两种方法补充:自己根据其思路写代码的时候发现了其中一些...

2018-07-27 20:53:40 153

原创 网易笔试题-回文序列

题目描述如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如:{1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。现在给出一个数字序列,允许使用一种转换操作:选择任意两个相邻的数,然后从序列移除这两个数,并用这两个数字的和插入到这两个...

2018-07-25 11:06:14 259

原创 笔试题-数组中乘积最大的三个数

刷题的时候做了一道笔试题,题目是从一个无序数组中找出乘积最大的三个数,但是要求时间复杂度:O(n),空间复杂度:O(1) 。开始一直想着用two pointer的思路去做,结果越陷越深,完全找不到思路,后来看了别人的博客才发现这道题非常的简单,只要把集中情况考虑分析一下就能写出来:为了找乘积最大的三个数,考虑以下情况:1. 所有数>=0的情况,这时只需要找最大的3个数就行了2. ...

2018-07-24 18:56:04 2171 2

原创 LeetCode 15. 3Sum

这道题是一道经典的2pointer题目,是之前的2Sum的升级版本,题目要求是在有n个元素的数组中找出所有和为0的3个元素,并输出。解题思路主要为:首先对数组排序,然后遍历每个元素,对每个元素来说只需要找到其他两个和为其相反数的元素,为了防止查找重复,每次都在该元素的后面查找其他两个元素。这样代码的时间复杂度为,不会超时代码如下(使用C++编写):class Solution {pub...

2018-07-24 16:22:06 93

原创 Leetcode 32. Longest Valid Parentheses

题目要求是在给定的一个包含左括号和右括号的字符串中,找出其最长的有效的子串使得左右括号匹配,并输出子串的长度。我的思路是:从左向右扫描字符串,并统计左右括号的数目。如果右括号多于左括号,则说明从之前的有效位置到这里一定无法构成有效括号对,所以重新计数。如果左括号多于右括号,那么还有继续匹配的可能,继续扫描。如果相等,就把目前的长度记录下来。另外,在计数相等的时候有前面子串无效仅仅当前子串有效,如“...

2018-06-05 15:46:20 159

原创 Leetcode 46. Permutations

题目要求是根据输入的数组输出各种它的所有排列组合。可以看出这是一道典型的深度优先搜索的问题。可以在搜索时将已搜到的未搜到的进行拆分。初始将搜到的置为空,未搜到的未全部数组。当搜到的数组长度与原始输入的数组相同时返回。以下为我的代码: public static List<List<Integer>> permute(int[] nums) { Li...

2018-06-05 11:11:54 106

原创 Leetcode 103 Binary Tree Zigzag Level Order Traversal

这是一道二叉树的Z字形遍历的问题。原本觉得不是很难,但中间磕磕绊绊遇到了许多小问题,费了我很大功夫才通过。首先和一般的BFS不同,Z字形遍历需要在一层遍历之后在下一层反向遍历。由于BFS常常用到队列这个数据结构,根据这个特点,我自然而然地想到了用栈来实现这种遍历。因为一层的遍历顺序正好和下一层是反的,先遍历到的结点在下一层是后遍历的。所以利用栈的“后进先出”的性质可以很方便地解决这个问题。由于奇偶...

2018-06-05 10:57:58 202

空空如也

空空如也

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

TA关注的人

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