
lettcode
su1177
。。。。。。。。。。
展开
-
Java算法题(来自lettcode)----01两数之和
题目是这样的给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回...原创 2019-03-04 23:35:48 · 159 阅读 · 0 评论 -
Java算法题(来自lettcode)----15 二进制求和
题目:给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"看到这个题,第一时间想到的是字符串转整数,但是这样很容易溢出。最后在一位大神的帮助下写出了下面代码,...原创 2019-03-20 23:01:23 · 205 阅读 · 0 评论 -
Java算法题(来自lettcode)----12 最后一个单词的长度 思路 详解
题目:给定一个仅包含大小写字母和空格' '的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5思路:其实最重要的就是trim()方法,当时自己没想到,然后在那白忙了半天先给大家看一个大神的代码吧 public i...原创 2019-03-17 14:30:52 · 170 阅读 · 0 评论 -
Java算法题(来自lettcode)----09移除元素
这是最近几天速度最快,做的最好的一次给定一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该...原创 2019-03-12 21:14:00 · 199 阅读 · 0 评论 -
Java算法题(来自lettcode)----13 最大子序
题目:给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。这是一个在网上找到的最好的可是自己看不懂啊。。。。。谁来给讲讲思路 public int maxSubArray(in...原创 2019-03-18 09:58:59 · 152 阅读 · 0 评论 -
Java算法题(来自lettcode)----16 x 的平方根
题目:实现int sqrt(int x)函数。计算并返回x的平方根,其中x是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。暴力for循环和调用系统方法的我就不...原创 2019-03-21 20:18:56 · 407 阅读 · 0 评论 -
Java算法题(来自lettcode)----14 加一 思路 详解
题目:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数...原创 2019-03-18 18:05:48 · 197 阅读 · 0 评论 -
Java算法题(来自lettcode)----17 爬楼梯(动态规划)
题目:假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 ...原创 2019-03-24 14:34:26 · 494 阅读 · 0 评论 -
Java算法题(来自lettcode)----18 反转链表
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL思路:先记录当前节点的下一个节点 head的next域为new_head 接着让new_head移动到刚刚的head处 让head移动到第下一个节点,进行下一轮 来个更直接的图吧...原创 2019-03-31 17:11:55 · 204 阅读 · 0 评论 -
Java算法题(来自lettcode)----12 报数 思路 详解
原题目:报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211被读作"one 1"("一个一") , 即11。11被读作"two 1s"("两个一"), 即21。21被读作"one 2", "one 1"("一个二"原创 2019-03-16 16:56:07 · 521 阅读 · 0 评论 -
Java算法题(来自lettcode)----08删除排序数组中的重复项__(每天一个算法题,愿我这个菜鸡明年能进个好公司)
题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。...原创 2019-03-11 21:58:22 · 117 阅读 · 0 评论 -
Java算法题(来自lettcode,求大神指导)----02整数反转
题目:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123 输出: 321示例 2: 输入: -123 输出: -321示例 3: 输入: 120 输出: 21一开始,我觉得很简单,不就把一个整数变成一个字符串然后翻转一下然后在变成整数不就好了。最多再进行个判断,分个情况,小于零 判断一下是否越界。但是一运行就打脸了,报了下面的...原创 2019-03-05 22:37:07 · 394 阅读 · 0 评论 -
Java算法题(来自lettcode)----05最长公共前缀
题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所原创 2019-03-08 22:18:57 · 141 阅读 · 0 评论 -
Java算法题(来自lettcode)----10实现strStr()
题目:实现strStr()函数。给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa",...原创 2019-03-13 22:58:27 · 161 阅读 · 0 评论 -
Java算法题(来自lettcode)----03回文数
题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。看到这个题我相信大家,第一时间想到的肯定是用字符串,当然这也是最简单的方法 public boolean isPalindrome(int x) { String str = new String(x + ""); StringBuffer sb = new StringBuffe...原创 2019-03-06 23:25:57 · 205 阅读 · 0 评论 -
Java算法题(来自lettcode)----06有效的括号
题目描述给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出...原创 2019-03-09 21:35:24 · 229 阅读 · 0 评论 -
Java算法题(来自lettcode)----04罗马数字转整数
题目:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两...原创 2019-03-07 21:36:57 · 210 阅读 · 0 评论 -
Java算法题(来自lettcode)----07合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4这个最方便的就是递归: public ListNode mergeTwoLists(ListNode l1, ListNode l2) {...原创 2019-03-11 15:40:40 · 168 阅读 · 0 评论 -
Java算法题(来自lettcode)----11搜索插入位置
题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,...原创 2019-03-15 18:17:51 · 147 阅读 · 0 评论 -
Java算法题(来自lettcode)----19 相交链表
题目:编写一个程序,找到两个单链表相交的起始节点。思路就是这样: public ListNode getIntersectionNode(ListNode headA, ListNode headB) { // 判空 if (headA == null || headB == null) { return null; } ListNode node1...原创 2019-04-12 21:54:22 · 271 阅读 · 0 评论