滴水穿石,慢慢积累,总会有成果

随手记录,持之以恒

LeetCode 做题小结

题目 类型 1. Two Sum 简单题 2. Add Two Numbers 链表 ...

2017-04-24 22:00:14

阅读数 486

评论数 0

深入理解 Block

本文主要根据《Objective-C高级编程》这本书中的第二章来进行的一个总结,其中包含了查看其它文章后的总结和自己的一些理解,关于 block 的一些定义在这里就不说了,这里主要讲一下 block 中的截获自动变量和 __block 关键字的实现 文章主要内容如下: 一个普通的 block...

2017-10-06 16:30:38

阅读数 465

评论数 0

LeetCode 125. Valid Palindrome

题意判断一个字符串是否是回文串,串中只取数字或者字母,大写和小写字母按相同计算思路思路一:遍历字符串,将数字和字母提取出来一个新的字符串,然后遍历新的字符串来判断是否是回文串。这种方法多出了 O(n)O(n) 的空间复杂度思路二:定义两个指针 L, R,分别从开始和最后的点开始遍历,每次取符合条件...

2017-09-11 14:22:53

阅读数 675

评论数 0

LeetCode 98. Validate Binary Search Tree

题意判断一棵树是否是二叉排序树思路递归中维护当前子树的最大值和最小值,左子树维护最大值,右子树维护最小值,然后进行判断代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * Tr...

2017-09-11 14:01:18

阅读数 229

评论数 0

LeetCode 141. Linked List Cycle

题意判断一个单链表是否存在环思路设置两个指针快和慢,快指针每次前进两个节点,慢指针每次前进一个节点.时间复杂度:O(n)O(n)代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ...

2017-09-10 17:03:15

阅读数 173

评论数 0

LeetCode 160. Intersection of Two Linked Lists

题意求两个链表的交点思路思路一:求出两个链表的长度差,然后将较长的一个偏移长度差的长度,然后求交点思路二:类似于求链表是否存在环,设定两个指针,如果一个指针走到底了,那么从另一个链表的头节点开始继续,直到两个指针相等.代码思路一:/** * Definition for singly-linke...

2017-09-10 16:50:52

阅读数 241

评论数 0

二叉树总结

什么是二叉树?引用自百度百科: 在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree),同样的左右子树也都是二叉树.前言本文代码实现为 C/C++,因为不是一个完整的讲解文章,只是个人思路,所以说思路...

2017-09-06 19:39:48

阅读数 295

评论数 2

LeetCode 146. LRU Cache

题意设计一个 LRUCacheLRU Cache 的算法,什么是 LRULRU,可以参考:LRU思路使用 HashHash + 双向链表,主要是链表的删除和添加操作,链表头为新加入的任务,链表尾为最近最久未被使用的任务. 当新来一个任务之后,查看 HashHash 表中时候存在: 如果存在,将此...

2017-09-05 12:52:47

阅读数 212

评论数 0

堆排序

堆排序在排序算法中算是比较晦涩难懂的一种,和快速排序、归并排序一样,平均时间复杂度为O(nlogn)O(nlogn) ,要了解堆排序,必须点亮前置技能点—二叉堆&二叉树。二叉堆定义: 一种经过排序的完全二叉树 性质: 任意父节点的值都大于等于或小于等于子节点的值 每个节点的左右子堆也都是二...

2017-08-29 14:43:48

阅读数 228

评论数 0

LeetCode 70. Climbing Stairs

题意从第00层阶梯到第nn层阶梯有多少中方法,每次只能上一层或者两层思路经典的DPDP问题,dp[i]dp[i]表示到第ii层的方法数,那么要到第ii层,只能从第i−1i - 1层或者第i−2i - 2层上来,那么可以得出: dp[i]=dp[i−1]+dp[i−2]dp[i] = dp[i -...

2017-06-09 14:09:39

阅读数 231

评论数 0

LeetCode 69. Sqrt(x)

题意求n√\sqrt{n}思路使用二分法求解,其中注意,mid∗midmid * mid有可能会intint溢出.代码class Solution { public: int mySqrt(int x) { if(x <= 0) return 0; i...

2017-06-09 14:01:17

阅读数 183

评论数 0

LeetCode 67. Add Binary

题意将两个二进制数字相加思路和十进制相加一样的思想,只是进位变化一下代码class Solution { public: string addBinary(string a, string b) { return add(a, b); } private: ...

2017-06-08 22:48:08

阅读数 132

评论数 0

LeetCode 66. Plus One

题意将一个存于数组中组成的数字加一思路直接模拟代码class Solution { public: vector<int> plusOne(vector<int>& digits) { string num1 = ""; ...

2017-06-08 22:45:01

阅读数 138

评论数 0

LeetCode 65. Valid Number

题意验证一个字符串是否为数字思路可能会出现的情况: 前导空格和后缀空格 字符串存在多个小数点或者多个ee 小数点前面没有数字,这种情况是truetrue ee前面没有数字,这种情况是falsefalse ee或者小数点后面没有数字是falsefalse 代码class Solution { pub...

2017-06-08 22:37:30

阅读数 157

评论数 0

LeetCode 64. Minimum Path Sum

题意一个n∗mn * m的地图,每个点有一个权值,求从左上角到右下角的最小路径权值和.思路经典的DPDP问题,dp[i][j]dp[i][j]表示到达点(i,j)(i, j)的最小权值和,同样的到达一个点(i,j)(i, j)只能从点(i−1,j)(i - 1, j)或者点(i,j−1)(i, j...

2017-06-08 21:03:01

阅读数 163

评论数 0

LeetCode 63. Unique Paths II

题意给出一个n∗mn * m的地图,地图中会存在障碍,求从左上角到右下角的方案数,只能向右走或者向下走思路和上一题62. Unique Paths差不多,只是多了一些障碍,只需要判断一下就可以了,需要注意对于边界的处理如果前一步不能到达,那么当前也是不可能到达的.代码class Solution ...

2017-06-08 20:44:33

阅读数 174

评论数 0

LeetCode 62. Unique Paths

题意一个n∗mn * m的地图,求从左上角到右下角的不同路径数,只能向下或向右走思路经典的DPDP模型,dp[i][j]dp[i][j]表示到达点(i,j)(i, j)的方案数,因为只能向右或者向下行走,所以说到达点(i,j)(i, j)的只能是点(i−1,j)(i - 1, j)或者点(i,j−...

2017-06-08 20:01:04

阅读数 149

评论数 0

LeetCode 61. Rotate List

题意将一个链表向右旋转kk个位置思路直接定位旋转后的尾结点,然后将原始尾结点的nextnext指向原始头结点,然后将旋转后尾结点的原始nextnext指向的结点置为头结点.需要注意的case: k有可能会大于链表长度 代码/** * Definition for singly-linked li...

2017-06-08 19:48:21

阅读数 150

评论数 0

LeetCode 60. Permutation Sequence

题意求出11到nn全排列的第k个序列.思路康拓逆展开的模板题目代码class Solution { public: string getPermutation(int n, int k) { vector<int>f; f.push_back(1...

2017-06-08 19:33:28

阅读数 155

评论数 0

LeetCode 59. Spiral Matrix II

题意对n∗nn * n的矩阵进行蛇形填数思路蛇形填数,螺旋模拟即可代码class Solution { public: vector<vector<int>> generateMatrix(int n) { vector<vector<i...

2017-06-08 14:34:06

阅读数 144

评论数 0

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