![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
iteye_1084
这个作者很懒,什么都没留下…
展开
-
LeetCode[位运算] - #137 Single Number II
原题链接:#137 Single Number II 要求: 给定一个整型数组,其中除了一个元素之外,每个元素都出现三次。找出这个元素 注意:算法的时间复杂度应为O(n),最好不使用额外的内存空间 难度:中等 分析: 与#136类似,都是考察位运算。不过出现两次的可以使用异或运算的特性 n XOR n = 0, n XOR 0 = n,即某一位上出现偶数次1将该位...2015-07-18 22:18:41 · 102 阅读 · 0 评论 -
LeetCode[位运算] - #136 数组中的单一数
原题链接:#136 Single Number 要求: 给定一个整型数组,其中除了一个元素之外,每个元素都出现两次。找出这个元素 注意:算法的时间复杂度应为O(n),最好不使用额外的内存空间 难度:中等 分析: 题目限定了线性的时间复杂度,同时不使用额外的空间,即要求只遍历数组一遍得出结果。由于异或运算 n XOR n = 0, n XOR 0 = n,故将数组中的每个元素进行异或...原创 2015-03-20 08:21:14 · 99 阅读 · 0 评论 -
LeetCode[位运算] - #191 计算汉明权重
原题链接:#191 Number of 1 Bits 要求: 写一个函数,以一个无符号整数为参数,返回其汉明权重。例如,‘11’的二进制表示为'00000000000000000000000000001011', 故函数应当返回3。 汉明权重:指一个字符串中非零字符的个数;对于二进制串,即其中‘1’的个数。 难度:简单 分析: 将十进制参数转换为二进制,然后计算其中1的个数即可。 ...2015-03-18 19:29:05 · 189 阅读 · 0 评论 -
LeetCode[贪心算法] - #122 Best Time to Buy and Sell Stock II
原题链接:#122 Best Time to Buy and Sell Stock II 要求: 假定你有一个包含n个元素的整型数组,其中的第i个元素是指定股票在第i天的价格。 设计一个算法来计算在这n天里可能获得的最大利润。注:只考虑单只该股票的买入和卖出时机,一天内可以买卖多次,但不允许同一时间内存在多次交易(即:再次买入之前,必须买入该股票) 难度:中等 分析:...2015-11-08 21:46:26 · 141 阅读 · 0 评论 -
LeetCode[排序] - #148 Sort List
原题链接:#148 Sort List 要求: 给一个单向链表排序,要求时间复杂度为O(nlogn)且空间复杂度为O(1)。 单向链表定义如下: class ListNode{ int val; ListNode next; ListNode(int x){ this.val = x; } } 难度:中等 ...2015-08-13 10:21:37 · 102 阅读 · 0 评论 -
LeetCode[排序] - #242 Valid Anagram
原题链接:#242 Valid Anagram 要求: 给定两个字符串s和t,写一个函数,判断t是否是s的变位词。 如果t跟s包含相同字符但排列顺序不同,则称t是s的变位词。 例如: s = "anagram", t ="nagaram",返回true s = "rat", t = "car",返回false 注意:可以假定字符串只包含小写字母。 难度:容易 ...2015-08-11 19:39:51 · 104 阅读 · 0 评论 -
LeetCode[动态规划] - #5 Longest Palindromic Substring
原题链接:#5 Longest Palindromic SubString 要求: 给定一个字符串S,找出它的最长回文子串。假定S的最大长度为1000,且最长回文子串唯一 难度:中等 分析: 假定字符串s为回文字符串,则在s头部和尾部分别添加相同字符串[x],所得结果s'=[x]s[x]也为回文字符串(论述1)。可使用动态规划方法解决此问题,递推公式便基于此特性。 ...2015-08-04 22:52:49 · 125 阅读 · 0 评论 -
LeetCode[动态规划] - #198 House Robber
原题链接:#198 House Robber 要求: 原题是要为某盗贼设计一个能使其利益最大化的方案(这个场景并不和谐,在保持题意的情况下重新描述一个场景)。假设某糖果工厂有若干糖果机,每台糖果机每天产出不同数量的糖果,每天取糖果时不能同时取相邻两台糖果机的糖果(别问为什么),问每天能取得的最大糖果数量是多少。 糖果机产生的糖果数量集合可以看成一个整型数组。 难度:简单...2015-08-03 15:17:37 · 176 阅读 · 0 评论 -
LeetCode[Array] - #217 Contains Duplicate
原题链接:#217 Contains Duplicate 要求: 给定一个整型数组,判断它是否包含重复元素。当任一元素函数应当返回true,当所有元素各不相同时返回false。 难度:简单 分析: 与#1 Two Sum类似,可以两次循环遍历,依次判断每一个元素是否在其后出现;或者使用一个HashSet作为辅助结构,遍历数组,若某元素不在HashSet中则将其加入Se...2015-07-31 22:56:13 · 99 阅读 · 0 评论 -
LeetCode[Array] - #1 Two Sum
原题链接:#1 Two Sum 要求: 给定一个整数数组,找出其中的两个数,使之相加能够得到目标数字。 函数twoSum应当返回这两个数的索引,index1应小于index2。请注意,这两个索引并非从零开始计数。 假定每个输入都有且只有一个解。 例: 输入:numbers{2, 7, 11, 15}, target=9 输出:index1=1, index2=2 ...2015-07-31 22:25:57 · 80 阅读 · 0 评论 -
LeetCode[字符串] - #3 Longest Substring Without Repeating Characters
原题链接:#3 Longest Substring Without Repeating Characters 要求: 给定一个字符串,找到它没有重复字符的最长子串的长度。例如,"abcabcbb"的无重复字符最长子串为"abc",其长度为3。对于由相同字符组成的字符串"bbbbb",其最长子串为"b",故返回长度为1。 难度:中等 分析: 遍历给定字符串,对于每一个字...2015-07-20 16:57:59 · 73 阅读 · 0 评论 -
LeetCode[链表] - #2 Add Two Numbers
原题链接:#2 Add Two Numbers 要求: 给定两个以链表表示的非负整数,链表中的每个节点保存整数中的一位,以倒序排列(例如,321表示为1->2->3)。把这两个数字相加,作为一个链表返回。 输入:(2->4->3) + (5->6->4) 输出:7->0->8 难度:中等 分析: 本题思路比较直...2015-07-20 16:23:29 · 77 阅读 · 0 评论 -
LeetCode[链表] - #21 Merge Two Sorted Lists
原题链接:#21 Merge Two Sorted Lists 要求: 合并两个已排序的单向链表,将合并后的结果作为一个链表返回。 ListNode定义: public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } 难度:简单 分析: ...2015-07-20 16:01:10 · 87 阅读 · 0 评论 -
LeetCode[动态规划] - #10 Regular Expression Matching
原题链接:#10 Regular Expression Matching 要求: 实现正则表达式匹配,支持'.'和'*'。 '.'匹配任意单字符。 '*'匹配任何0个或多个之前元素。 匹配应当覆盖整个输入字符串,而不仅仅是子串。 函数原型: boolean isMatch(String /* string to check */ s, String /* p...2015-07-20 12:25:39 · 149 阅读 · 0 评论 -
LeetCode[动态规划] - #7 Climbing Stairs
原题链接:#7 Climbing Stairs 问题: 你正在攀爬一把一共有n个台阶的梯子,每次可以爬一或二阶,爬到顶共有多少种不同的方式? 难度:简单 分析: 当梯子阶数为0时,有0种攀爬方式;当阶数为1时,则有一种攀爬方式。当阶数为2时,由于每次可以爬一阶或两阶,即从0阶处爬两阶到达顶部或由1阶处爬1阶到达顶处,共2种方式。n=3时同样,可以由1阶处爬两阶或由2阶...2015-07-19 23:03:32 · 83 阅读 · 0 评论 -
LeetCode[Math] - #7 Reverse Integer
原题链接:#7 Reverse Integer 要求: 按位反转输入的数字 例1: 输入 x = 123, 返回 321 例2: 输入 x = -123, 返回 -321 难度:简单 分析: 对于一般情况,首先保存输入数字的符号,然后每次取输入的末位(x%10)作为输出的高位(result = result*10 + x%10)即可。但须考虑边界情况,即输入大于I...2015-07-18 23:10:38 · 96 阅读 · 0 评论 -
LeetCode[Math] - #66 Plus One
原题链接:#66 Plus One 要求: 给定一个用数字数组表示的非负整数,如num1 = {1, 2, 3, 9}, num2 = {9, 9}等,给这个数加上1。 注意: 1. 数字的较高位存在数组的头上,即num1表示数字1239 2. 每一位(数组中的每个元素)的取值范围为0~9 难度:简单 分析: 题目比较简单,只须从数组尾部开始,若当前位是9则向前...2015-07-18 22:57:51 · 100 阅读 · 0 评论 -
LeetCode[Math] - #9 Palindrome Number
原题链接:#9 Palindrome Number 要求: 判断一个整数是否是回文数,不要使用额外的存储空间 难度:简单 分析: 题目限制不允许使用额外的存储空间应指不允许使用O(n)的内存空间,O(1)的内存用于存储中间结果是可以接受的。于是考虑将该整型数反转,然后与原数字进行比较。 注:没有看到有关负数是否可以是回文数的明确结论,例如-1,-121等。根据Le...2015-03-24 18:42:24 · 85 阅读 · 0 评论