leetcode练习笔记
新博客地址:tingyun.site
忘记一个当了很久的自己,从新开始
展开
-
141.Linked List Cycle
leetcode做题笔记,只记录个人的解题思路和学习理解过程。题目描述: 给定一个链表,判断它是不是有环。 follow up: 系统推荐解决这个问题不使用额外的空间。//链表的样子是这样的struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}原创 2016-05-28 13:52:25 · 415 阅读 · 0 评论 -
101. Symmetric Tree
描述: Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree [1,2,2,3,4,4,3] is symmetric: 1 / \ 2 2 / \ / \3 4 4 3But原创 2016-08-06 15:57:24 · 370 阅读 · 0 评论 -
110. Balanced Binary Tree
这道题就是考查平衡二叉树的性质 描述: Given a binary tree, determine if it is height-balanced.For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every原创 2016-08-07 12:08:17 · 365 阅读 · 0 评论 -
232. Implement Queue using Stacks
这道题目是要求你使用stack简单地构建一个queue,实现和正常的queue的push,pop,front功能。 比较经典的一道题目了,也加深我们对栈和队列的理解。 描述: Implement the following operations of a queue using stacks.push(x) – Push element x to the back of queue. pop原创 2016-08-07 16:02:17 · 319 阅读 · 0 评论 -
172. Factorial Trailing Zeroes
头一次遇上翻译完了还没看懂意思的题目,英文功底还是需要的啊=__=|| 描述: Given an integer n, return the number of trailing zeroes in n!.就这么一句话,意思是这样:给出一个整数,int型,计算以这个整数开始的阶乘n!,这个阶乘得到的数中的尾部有多少个0.我们可以知道10 = 2*5,也就是说从1到n中:一个尾数为5和一个尾数为2原创 2016-08-07 21:13:14 · 364 阅读 · 1 评论 -
88. Merge Sorted Array
这道题目很简单,但是意思要看懂,给的参数和条件。 描述: Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: You may assume that nums1 has enough space (size that is greater or e原创 2016-08-08 14:44:14 · 374 阅读 · 0 评论 -
225. Implement Stack using Queues
这道题考查的是用队列Queue来模拟栈Stack,也是完成几个接口,pop,push,top…..先理清思路,再写代码。 描述: Implement the following operations of a stack using queues.push(x) – Push element x onto stack. pop() – Removes the element on top of原创 2016-08-11 21:51:38 · 336 阅读 · 0 评论 -
160. Intersection of Two Linked Lists
做这道题目的时候顺带复习了一下找带环单链表的环入口,在第二种解法中将作解释。描述: Write a program to find the node at which the intersection of two singly linked lists begins.For example, the following two linked lists:A: a1 → a2原创 2016-08-23 00:32:31 · 294 阅读 · 0 评论 -
217. Contains Duplicate
判断一个数组中是否存在相同元素的题目。 描述: Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return原创 2016-08-13 18:13:43 · 265 阅读 · 0 评论 -
103. Binary Tree Zigzag Level Order Traversal
这道题和之前的102题目基本类似,多加了一个操作:描述: Given a binary tree, return the zigzag level order traversal of its nodes’ values. (ie, from left to right, then right to left for the next level and alternate between).Fo原创 2016-07-31 22:28:04 · 254 阅读 · 0 评论 -
189. Rotate Array
这道题目思路比较简单,解题的方法有多种。 描述: Rotate an array of n elements to the right by k steps.For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].意为:给出一个数组array,给出一个步数k,让这个数组往原创 2016-08-16 11:05:16 · 328 阅读 · 0 评论 -
114. Flatten Binary Tree to Linked List
关于递归和dfs的一道题目:描述: Given a binary tree, flatten it to a linked list in-place.For example, Given 1 / \ 2 5 / \ \ 3 4 6The flattened tree should look like: 1 / \null 2原创 2016-07-31 16:22:05 · 425 阅读 · 0 评论 -
371. Sum of Two Integers
有关位运算的一道题目题目描述:Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -。给出两个int数,不用+和-计算两个数的和并返回。原创 2016-07-26 13:39:51 · 250 阅读 · 0 评论 -
226. Invert Binary Tree
反转二叉树,考的是递归的思想:题目描述:Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9to 4 / \ 7 2 / \ / \ 9 6 3 1原创 2016-07-26 15:21:47 · 278 阅读 · 0 评论 -
100. Same Tree
判断两课树是否是相等的树,提示tags有两种:tree和bfs。那联想到递归和BFS算法了。题目描述:Given two binary trees, write a function to check if they are equal or not.Two binary trees are considered equal if they are structurally identical and the原创 2016-07-26 21:09:59 · 341 阅读 · 0 评论 -
237. Delete Node in a Linked List
题目: Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with value原创 2016-07-27 11:13:41 · 271 阅读 · 0 评论 -
203. Remove Linked List Elements
描述: Remove all elements from a linked list of integers that have value val.Example Given: 1 –> 2 –> 6 –> 3 –> 4 –> 5 –> 6, val = 6 Return: 1 –> 2 –> 3 –> 4 –> 5给出一条单链表,删除指定值的节点,返回更新后的链表两种解法:1.设定一个指向原创 2016-07-27 14:49:07 · 338 阅读 · 0 评论 -
64.Minimum Path Sum
动态规划经典题目: 题目描述: 给定一个m行n列的矩阵grid,从左上角开始走,每次只能往下边或者往右边走,不能走出矩阵,求最后我们走到右下角经过的路线的最小值。分析题目: 我们每次只能走右或者下,那么你在这两种选择之间一定会有一个最优解,也就是最短的路程。这里我们假设一个m×n的矩阵来存储所有的位置的最优解。 1.初始值:dp[0][0] = grid[0][0] 2.很简单的是从上面走原创 2016-06-21 16:26:30 · 394 阅读 · 0 评论 -
53. Maximum Subarray
动态规划 题目描述: 给出一个整数数组,求得一个非空的子数组(连续一段数),使得它的和最大。1.解题思路一:分治 将数组分成等长的两部分,最后的答案要么在左边存在,要么再右边存在,要么是跨越中心点的某个连续数组,只有这三种情况了先分:两个基本等长的子数组,分别求解T(n/2) 后合:跨越中心点的最大子数组合,全部枚举出来 O(n)时间复杂度是:O(n*log n) in原创 2016-06-20 19:21:07 · 427 阅读 · 0 评论 -
102. Binary Tree Level Order Traversal
描述: Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).For example: Given binary tree [3,9,20,null,null,15,7], 3 / \ 9原创 2016-07-29 23:27:03 · 367 阅读 · 0 评论 -
219. Contains Duplicate II
这道题目类似上道题目217,考查的主要是hash表的用法。 描述: Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the difference betw原创 2016-08-13 20:04:44 · 359 阅读 · 0 评论