
算法/LeetCode
文章平均质量分 53
zg1g
7年算法工程师,10年Python使用经验。
展开
-
LeetCode-Easy部分中标签为Array#118: Pascal’s Triangle
总结这个图形的规律,利用数学归纳法推导Pascal’s Triangle的包原创 2017-03-27 22:51:28 · 652 阅读 · 0 评论 -
LeetCode-Easy部分中标签为Array#119 : Pascal’s Triangle II
Pascal三角的深层次挖掘算法原创 2017-03-28 08:45:27 · 673 阅读 · 0 评论 -
LeetCode-Easy部分中标签为LinkedList 160. Intersection of Two Linked Lists
求2个链表的交集`所在的节点`。注意题目中给出的注意事项。原创 2017-04-07 14:16:07 · 685 阅读 · 0 评论 -
LeetCode-Easy部分中标签为LinkedList 21. Merge Two Sorted Lists
合并两个有序链表。运用归并排序的合并思想。原创 2017-04-07 15:32:59 · 936 阅读 · 0 评论 -
LeetCode-Easy部分中标签为LinkedList的所有题目
LeetCode-Easy部分中标签为LinkedList的所有题目原创 2017-04-04 16:33:35 · 888 阅读 · 0 评论 -
LeetCode-Easy部分中标签为String 20. Valid Parentheses
栈的应用之字符配对。原创 2017-04-07 17:21:38 · 797 阅读 · 0 评论 -
LeetCode-Easy部分中标签为Array#414 : Third Maximum Number
找数组中第n个最大值原创 2017-03-29 13:19:04 · 549 阅读 · 0 评论 -
LeetCode-Easy部分中标签为String 58. Length of Last Word
最后一个字符长度原创 2017-04-07 16:10:34 · 845 阅读 · 0 评论 -
LeetCode-Easy部分中标签为String 14. Longest Common Prefix
求各个字符串的最大公共前缀。先求出前2个最大公共前缀 cstr,然后拿它在之后字符依次比较,有一个不是,则丢弃 cstr 的最后一个字符。原创 2017-04-08 10:05:05 · 755 阅读 · 0 评论 -
LeetCode-Easy部分中标签为String 434. Number of Segments in a String
> a segment is defined to be a contiguous sequence of non-space characters. 意味着我们可以写出以下2个API来判断每个字符串的第一个片段,然后递归求所有字符片段的个数。原创 2017-04-08 08:20:23 · 691 阅读 · 0 评论 -
LeetCode-Easy部分中标签为String 459. Repeated Substring Pattern
判断字符串可由子串重复模式组成吗。思路,默认第一个字符为可重复组合整个串,则去掉这个字符组成的子串中,这个字符的indexof为0,依次检查,若不成立,再组合前两个字符,。。。原创 2017-04-07 23:50:26 · 778 阅读 · 0 评论 -
LeetCode-Easy部分中标签为String 520. Detect Capital
所有字母大写,只有首字母为大写,所有字符小写,这是三种合法的字符。判断根据这个思路去写即可。原创 2017-04-07 22:49:58 · 1044 阅读 · 0 评论 -
LeetCode-Easy部分中标签为String 383. Ransom Note
判断从字符串 str 中是否可以选出指定的字符串 substr 。思路,str 整理成字典,遍历 substr 的每个字符,判断有吗,没有返回 false;遍历完返回 true。原创 2017-04-08 11:22:10 · 713 阅读 · 0 评论 -
LeetCode-Easy部分中标签为String的所有题目
LeetCode-Easy部分中标签为String的所有题目原创 2017-04-07 15:39:35 · 989 阅读 · 0 评论 -
LeetCode-Easy部分中标签为 Binary Search 349. Intersection of Two Arrays
求两个数组的交集。原创 2017-04-08 11:47:56 · 563 阅读 · 0 评论 -
LeetCode-Easy部分中标签为 Binary Search 349. Intersection of Two Arrays 350. Intersection of Two Arrays II
求数组的交集,同一个元素在交集中可能出现多次。考虑了数组排序,二分查找,数组大小等因素。思路:数组排序,小个数在大个数组中二分查找位置,若元素相等,查看是否在2个数组中出现多次。原创 2017-04-08 16:54:42 · 641 阅读 · 0 评论 -
算法-发明KMP算法的唐纳德·克努特是怎么想到失配函数next[j]的?
发明KMP算法的唐纳德·克努特是怎么想到失配函数next[j]的?原创 2017-03-23 13:06:19 · 12495 阅读 · 3 评论 -
LeetCode-Easy部分中标签为 Binary Search 167. Two Sum II - Input array is sorted
在升序数组中,求两个数的和等于目标值时所在的索引,分别给出最精简的Hash算法和两个指针法原创 2017-04-08 22:20:20 · 1490 阅读 · 0 评论 -
LeetCode-Easy部分中标签为 Binary Search 441. Arranging Coins
返回给定 n 的全数的个数。二分查找。原创 2017-04-08 23:48:03 · 786 阅读 · 0 评论 -
LeetCode-Easy部分中标签为Array#35: Search Insert Position
确定一个有序数组中,插入目标值的索引位置,如果插入值已经存在,则直接返回它的索引值,如果不存在,确定插入后的索引位置。原创 2017-03-27 21:59:18 · 862 阅读 · 1 评论 -
LeetCode-Easy部分中标签为 Binary Search的所有题目
LeetCode-Easy部分中标签为 Binary Search的所有题目。原创 2017-04-08 11:31:28 · 597 阅读 · 0 评论 -
LeetCode-Easy部分中标签为 Binary Search 278. First Bad Version
二分查找应用到第一个坏版本查找上。原创 2017-04-09 09:58:16 · 756 阅读 · 0 评论 -
540. Single Element in a Sorted Array
异或操作求单数。原创 2017-04-09 13:08:31 · 944 阅读 · 5 评论 -
LeetCode-Easy部分中标签为Dynamic Programming 303 Range Sum Query - Immutable
求 `[i,j]` 区域和。这个题目最出彩的地方莫过于给出了一个构造函数,这是一个重要的提示,预示着它可能给出点什么东西。是的,在构造函数中,计算出 nums[i] = nums[0]~nums[i]的和。原创 2017-04-09 23:14:28 · 686 阅读 · 0 评论 -
LeetCode-Easy部分中标签为Dynamic Programming 的所有题目
Dynamic Programming的所有easy部分题目原创 2017-04-09 22:13:17 · 705 阅读 · 0 评论 -
LeetCode-Easy部分中标签为Dynamic Programming 121. Best Time to Buy and Sell Stock
`Kadane's Algorithm` 求两个数的最大差值,后面的数作为被减数,O(n)的时间复杂度,O(1)的空间复杂度。原创 2017-04-10 20:07:54 · 496 阅读 · 0 评论 -
LeetCode-Easy部分中标签为HashTable的所有题目
LeetCode中的tag为HashTable的,easy部分的所有题目。原创 2017-04-02 10:21:36 · 902 阅读 · 0 评论 -
LeetCode-Easy部分标签为HashTable 409. Longest Palindrome
借助哈希表,或字典,求某个字符出现的个数,若为偶数,则取字符串中此字符所有个数,若为奇数,个数减1即可,只保留一个奇数不减去1。原创 2017-04-03 22:06:35 · 482 阅读 · 0 评论 -
LeetCode-Easy部分标签为HashTable 463. Island Perimeter
1代表陆地,0代表海洋,恰好有1整块陆地区域。若某块区域为海洋,则无有效边;若某块为陆地,有效边最多为3个, 有效边最少为0个。若某块陆地紧邻1块其他陆地,则次陆地有效边为3个,若紧邻2块,则有效边为2个,若紧邻3块其他陆地,则有效边为1个,若紧邻4块,有效边为0个。原创 2017-04-03 15:59:37 · 667 阅读 · 0 评论 -
LeetCode-Easy部分标签为HashTable 447. Number of Boomerangs
给出n组点,找出所有`boomerang` 的个数,`boomerang` 定义: `d(Pi,Pj)=d(Pi,Pk)`。题目涉及到三个点,先保持一个轴点`rot`,然后找与其他点的距离,若个数为`m,m满足m>1`,则找到轴点`rot` 的*Boomerangs* 个数为`A(m,2)` ,继续遍历其他轴点,返回累加和。原创 2017-04-03 14:39:51 · 690 阅读 · 0 评论 -
LeetCode-Easy部分标签为HashTable#136 Single Number
整数数组,除了一个出现一次外,其他都是两次。求这个唯一出现一次的数。给出了HashSet和异或操作两种算法。原创 2017-04-02 10:12:07 · 1220 阅读 · 0 评论 -
算法-子数组连续序列最大和其时间复杂度如何从O(n^3)到O(n)
求数组的连续子数组和的最大值。如何做到时间复杂度从O(n^3),O(n^2),再到O(n)呢? 这中间我们应该做哪些思考使复杂度逐渐变小呢?这些思想怎么能应用到我们的开发中呢? 下面分别看下这几个版本的代码实现。原创 2017-04-11 22:34:01 · 1368 阅读 · 0 评论 -
LeetCode-Easy部分标签为LinkedList 237. Delete Node in a Linked List
删除单链表的某个指定数据域的节点,比较简单,直接修改删除节点的数据域和指针域为删除节点的后一个节点。原创 2017-04-04 11:14:26 · 698 阅读 · 0 评论 -
LeetCode-Easy部分标签为LinkedList 141 Linked List Cycle
求有环单链表中的环长、环起点、链表长中一个入门题原创 2017-04-04 11:06:58 · 808 阅读 · 0 评论 -
LeetCode-Easy部分标签为LinkedList 83. Remove Duplicates from Sorted List
删除单链表中的所有重复节点。指针`diff` 指向链表中的不同值,`tmp`指向每一个节点,内层while循环不断刷新`tmp`,跳出循环后表示找到一个新的不同节点`tmp.next`,赋值给`diff.next`,表示找到一个新的不同值。原创 2017-04-04 17:20:20 · 935 阅读 · 0 评论 -
LeetCode-Easy部分中标签为Math的所有题目
LeetCode中的tag为`Math`的,easy部分的所有题目原创 2017-04-04 18:02:35 · 635 阅读 · 0 评论 -
LeetCode-Easy部分中标签为Two Pointers 345. Reverse Vowels of a String
反转字符串中的元音字符。首、尾两个指针分别定位元音字符,交换原创 2017-04-05 15:17:15 · 1086 阅读 · 0 评论 -
LeetCode-Easy部分中标签为Two Pointers 125. Valid Palindrome
判断一个字符串是不是`回文` 字符串。首、尾指针分别指向有效字符或数字,一一比较,若过程中出现不等,直接返回false,若两个指针碰头了,表示字符首、尾都相等,返回true。原创 2017-04-05 17:20:20 · 864 阅读 · 0 评论 -
LeetCode-Easy部分中标签为Two Pointers 283. Move Zeroes
0全部后移,非零顺序不变。借助两个指针,一个顺序前移,判断指向的为零吗?一个指针始终指向非零元素,即第1个非零,第2个。。。原创 2017-04-05 20:09:07 · 554 阅读 · 0 评论 -
LeetCode-Easy部分中标签为Two Pointers 88. Merge Sorted Array
归并排序的合并部分,前提是有序数组。题目中说到nums1控件足够大。原创 2017-04-05 23:08:05 · 875 阅读 · 0 评论