LeetCode算法题
Wonderfuldays_
快乐的程序员
展开
-
LeetCode算法题——相同的树
要判断给定的两颗二叉树是否相同,就递归遍历它们的所有子节点并进行判断代码如下: //判断两颗树是否相同 public bool IsSameTree(TreeNode p, TreeNode q) { if (p == null && q == null) return true; if (p...原创 2018-09-09 18:41:14 · 173 阅读 · 0 评论 -
147. 对链表进行插入排序
对链表进行插入排序。插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。 插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其...原创 2018-10-15 13:03:13 · 618 阅读 · 1 评论 -
56. 合并区间
给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。...原创 2018-10-18 00:06:00 · 290 阅读 · 0 评论 -
41. 缺失的第一个正数
给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1主要判断数组中如果全是负数就返回1; 如果数组中有正数,找出最小的正数,如果大于1则返回1,如果=1的话判断数组中它之后的正数和它是否连续,不连续则找出第一个...原创 2018-09-21 12:45:55 · 222 阅读 · 0 评论 -
15. 三数之和
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]这道题首先需要先对数...原创 2018-10-01 23:00:08 · 206 阅读 · 0 评论 -
70. 爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. ...原创 2018-10-01 22:15:50 · 107 阅读 · 0 评论 -
43. 字符串相乘
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1 和 num2 的长度小于110。 num1 和原创 2018-09-17 19:47:29 · 374 阅读 · 0 评论 -
LeetCode算法题——两个排序数组的中位数
4.给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。你可以假设 nums1 和 nums2 不同时为空。示例 1:nums1 = [1, 3]nums2 = [2]中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]中位数是 ...原创 2018-09-13 02:01:15 · 229 阅读 · 0 评论 -
LeetCode算法题——完全二叉树的节点个数
对于这道题首先会想到递归判断节点,不为空就加1,代码如下(但是会超时)://会超时public class Solution { if (root == null) return 0; return CountNodes(root.left) + CountNodes(root.right) + 1;}public class TreeNode { publi...原创 2018-09-12 18:20:06 · 425 阅读 · 0 评论 -
LeetCode算法题——三数之和
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]代码如下:pu...原创 2018-09-12 16:47:18 · 242 阅读 · 0 评论 -
LeetCode算法题——最长同值路径
int max = 0; //保存当前最长路径值 public int LongestUnivaluePath(TreeNode root) { if (root == null) return 0; else { GetLongest(ro...原创 2018-09-09 19:09:39 · 567 阅读 · 1 评论 -
LeetCode算法题——查找字符串数组中的最长公共前缀
代码如下:public string LongestCommonPrefix(string[] strs) { if (strs.Length == 0) return ""; //为0返回空 //先找出公共前缀最大的长度. int min = strs[0].Length; fo...原创 2018-09-09 18:48:17 · 856 阅读 · 0 评论 -
234. 回文链表
请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true思路: 首先建立两个指针指向链表,然后使其中一个指针指向链表中间,这里可以使用另一个指针快速移动,当另一个指针移动速度是前一根指针的一倍时,就可以使slow指针到一半,而fast指针遍历完了。使用...原创 2018-10-16 19:53:35 · 101 阅读 · 0 评论