
LeetCode简单
hello kitty w
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
3、回文数问题
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。...原创 2018-10-17 22:52:20 · 454 阅读 · 0 评论 -
4、罗马数字转整数问题
用时比较少的代码class Solution { public int romanToInt(String s) { int value = 0; char[] charArray = s.toCharArray(); int length = charArray.length; for (int i = 0; i &lt...原创 2018-10-18 22:25:17 · 213 阅读 · 0 评论 -
1、两数之和问题
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]我的思维就是:数组的二重遍历,但是同一索引不同被使用两次代码:class Solution { ...原创 2018-10-16 09:00:42 · 232 阅读 · 0 评论 -
2、整数反转
描述给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。我的想法是:首先将传入的数字转成字符数组,之后判断第一...原创 2018-10-16 15:10:50 · 260 阅读 · 0 评论 -
5、括号匹配问题
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)...原创 2018-10-19 19:58:36 · 329 阅读 · 0 评论 -
7、移除元素
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为...原创 2018-10-22 08:53:34 · 144 阅读 · 1 评论 -
10、报数序列
报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1112112111112211 被读作 “one 1” (“一个一”) , 即 11。11 被读作 “two 1s” (“两个一”), 即 21。21 被读作 “one 2”, “one 1” (“一个二” , “一个一”) , 即 1211。给定一个正整...原创 2018-10-25 16:00:53 · 1512 阅读 · 0 评论 -
11、最大子序和
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。这道题有点难度我的这个代码超时了int max = Integer.MIN_VALUE; int min = 0; for(i...原创 2018-10-25 19:21:06 · 252 阅读 · 0 评论 -
14、平方根
实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842…,由于返回类型是整数,小数部分将被舍去我的代码class Solution { public int mySqrt(...原创 2018-10-28 23:45:35 · 369 阅读 · 0 评论 -
6、删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums ...原创 2018-10-21 17:54:25 · 138 阅读 · 0 评论 -
8、实现strStr()函数
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba...原创 2018-10-23 15:15:19 · 279 阅读 · 0 评论 -
15、二进制求和
给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”...原创 2018-10-29 23:54:22 · 127 阅读 · 0 评论 -
12、最后一个单词的长度
给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: “Hello World”输出: 5这是我的代码但是效率真的很低if(s.trim().equals("")) return 0; String s2[] = s.split(" "); ...原创 2018-10-26 20:52:51 · 115 阅读 · 0 评论 -
17、删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3我的未优化的代码public static ListNode deleteDuplicates(ListNode head) { if(head =...原创 2018-10-31 20:31:24 · 174 阅读 · 0 评论 -
9、搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0代码描述if(...原创 2018-10-24 19:54:58 · 127 阅读 · 0 评论 -
18、合并有序数组
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,...原创 2018-10-31 22:51:33 · 226 阅读 · 0 评论 -
13、加一问题
我的代码:不同的提交竟然有一次是100%了,说明是网络问题…public static int[] plusOne(int[] digits) { int div = 0; div = (digits[digits.length-1]+1)/10; digits[digits.length-1] = (digits[digits.length-1]+...原创 2018-10-27 19:43:05 · 178 阅读 · 0 评论 -
16、爬楼梯问题
题目:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?一开始拿到这道题,也是一脸懵逼,网上找点思路,其实就是一个斐波那契数列,瞬间把代码撸了出来,不得不说有了思路就好办,其余都是浮云,就本题而言,就是2和1的组合成一个数字的问题,其实不难,但是,你通过前几项的推演和计算,会发现这个规律,这道题就充分显示出了数学功底在算法中的...原创 2018-10-30 21:06:48 · 146 阅读 · 0 评论 -
19、相同的树
题目给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1/ \ / 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 1/ 2 ...原创 2018-11-01 23:19:37 · 139 阅读 · 0 评论 -
21、二叉树的最大深度
这几天都是二叉树的题目,这个代码超时,很无语,继续弄class Solution { public int maxDepth(TreeNode root) { if(root == null) return 0; else { if(maxDepth(root.left) > maxDepth(root.righ...原创 2018-11-03 23:36:35 · 157 阅读 · 0 评论 -
24、二叉树的最小深度
题目,这几天都是截图来描述题目,因为二叉树不好复制:我的代码解释:这道题跟最大深度一样的,使用递归就变得十分简单,唯一不同的就是当两边有一个为0时,需要去深度较大的那个,比如这个测试用例 [1,2]那么结果是2而不是0,因为要求的是到达根节点的最小,右边没有这样就不能以0深度计算了,这点需要注意。。。public static int minDepth(TreeNode root) ...原创 2018-11-06 19:14:04 · 246 阅读 · 0 评论 -
27、杨辉三角2
题目描述跟之前不同的是这个只需要返回第n层即可,所以这次如果不考虑其复杂度,可以直接将昨天的代码给改造一下如下 public static List<Integer> getRow(int rowIndex) { List<List<Integer>> target = new ArrayList<>(); for(int...原创 2018-11-09 23:20:09 · 261 阅读 · 0 评论 -
20、对称二叉树
题目给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。说明:如果你可以运用递归和迭代两种方法解决这个问题,会很加分。历史总是惊人的相似,我遇到这道题还是没写出来,但是,网上找到的代码,瞬间懂了其思路,哎,继续刷题吧public static boolean isSymmetric(TreeNode root) { if(root =...原创 2019-07-31 23:08:16 · 160 阅读 · 0 评论 -
22、层次遍历
题目描述:昨晚没写出来,但是把思路给理出来了,今天照着昨晚的思路,很快写出来了,但是当我觉得更好的时候,又改了一下,于是就过去两个小时了,思路:首先我是使用两个队列,一个队列专门用来取出下一层的节点,而另一个队列用来取值,放入到list中,注意的是这个list的类型也是list,这个过程中最长的时间就是qu2 = qu1,一开始我以为的是赋值,也就直接这么写了,哪知道这是赋地址,就是说qu1...原创 2019-07-31 22:43:40 · 175 阅读 · 0 评论 -
30、验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。原创 2018-11-13 21:55:47 · 244 阅读 · 0 评论 -
28、买股票的最佳时间
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。首先想到的是两层循环,但是很明显不是最优的解,因此考虑比较好的算法class Solution { public int maxProfit(int[] prices) { in...原创 2018-11-10 23:51:38 · 152 阅读 · 0 评论 -
23、平衡二叉树
初次拿到这道题,也是一点思路没有,但是根据之前求最深的函数就可以得知了 public static boolean isBalanced(TreeNode root) { if(root == null){ return true; }else { Queue&lt;TreeNode&gt; mid = new LinkedList&lt;&gt;(); ...原创 2018-11-05 23:48:40 · 189 阅读 · 0 评论 -
29、买股票的最佳时间II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获...原创 2018-11-11 23:18:09 · 272 阅读 · 0 评论 -
31、只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4思路:一开始拿到是没有思路的,但是可以想到如果一个数字异或两次那么就是0,那么如果最后的结果是什么数字就是什么了我的...原创 2018-11-13 22:34:45 · 114 阅读 · 0 评论 -
26、杨辉三角
题目这道题很简单,只需要两个for循环,并且判断内层中的变量是否等于1或者外层的值,如果等于的话直接赋值1,否则就取出上一层的值并且取出相邻的值代码:public static List<List<Integer>> generate(int numRows) { List<List<Integer>> target = n...原创 2018-11-08 23:53:07 · 118 阅读 · 0 评论 -
34、相交链表
编写一个程序,找到两个单链表相交的起始节点。例如,下面的两个链表:A: a1 → a2↘c1 → c2 → c3↗B: b1 → b2 → b3在节点 c1 开始相交。注意:如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没有循环。程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。一开...原创 2018-11-15 22:58:55 · 856 阅读 · 0 评论 -
37、求众数
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。思路;由于给出的数组中存在众数,并且众数这里的定义是在数组中出现的次数大于n/2,那么就是说给出的数组中,一定有一个数字出现的次数大于n/2。那么只要找出次数大于n/2的数字即可,一开始想到的是放入map中,然后遍历,后来通过提示,发现可以使用一...原创 2018-11-18 23:05:41 · 154 阅读 · 0 评论 -
32、环形链表
给定一个链表,判断链表中是否有环。进阶:你能否不使用额外空间解决此题?思路;使用快慢指针的方式来解决,首先定义一个慢的head1,之后定义一个快的head2,如果有环那么快慢的node一定会相等我的代码 public static boolean hasCycle(ListNode head) { ListNode head1 = head; ListNode ...原创 2018-11-14 22:26:13 · 115 阅读 · 0 评论 -
33、简单的栈实现
发的原创 2018-11-14 23:38:38 · 147 阅读 · 0 评论 -
40、旋转数组
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99] 和 k...原创 2018-11-21 00:23:10 · 165 阅读 · 0 评论 -
35、两数之和II输入有序数组
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], targe...原创 2018-11-16 21:47:57 · 190 阅读 · 0 评论 -
42、位1的个数
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 :输入: 11输出: 3解释: 整数 11 的二进制表示为 00000000000000000000000000001011示例 2:输入: 128输出: 1解释: 整数 128 的二进制表示为 00000000000000000000000010000000跟昨天的思路...原创 2018-11-23 17:27:25 · 283 阅读 · 0 评论 -
43、打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号...原创 2018-11-23 21:52:16 · 172 阅读 · 1 评论 -
38、Excel表列序号
给定一个Excel表格中的列名称,返回其相应的列序号。例如,A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例 1:输入: “A”输出: 1示例 2:输入: “AB”输出: 28示例 3:输入: “ZY”输出: 701我的思路:首先放入到hashmap中,之后需要取出就是进...原创 2018-11-19 23:07:41 · 273 阅读 · 0 评论 -
39、阶乘后的零
题目:初阶:123*……100 求结果末尾有多少个零。进阶: N的阶乘末尾有多少个0来源https://blog.youkuaiyun.com/TommyZht/article/details/46309563分析:一般类似的题目都会蕴含某种规律或简便方法的阶乘末尾一个零表示一个进位,则相当于乘以10而10 是由25所得,在1~100当中,可以产生10的有:0 2 4 5 6 8 结尾的数字,显然...原创 2018-11-19 23:29:39 · 524 阅读 · 0 评论