![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Lintcode
文章平均质量分 58
你也不知道我是谁
这个作者很懒,什么都没留下…
展开
-
8、反转字符串
ExampleGiven "abcdefg".offset=0 => "abcdefg"offset=1 => "gabcdef"offset=2 => "fgabcde"offset=3 => "efgabcd"第一种方法:新建一个数组,将字符串按照格式要求一次放进去即可 但是这个方法消耗的额外的空间比较大public cl原创 2018-09-25 16:53:32 · 158 阅读 · 0 评论 -
14、二分查找
给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。样例在数组 [1, 2, 3, 3, 4, 5, 10] 中二分查找3,返回2。挑战如果数组中的整数个数超过了2^32,你的算法是否会出错?思路:刚开始只是简单的写了一个 没有可考虑到可能有重复的值...原创 2018-10-09 21:26:47 · 175 阅读 · 0 评论 -
761. 最小子集
给一 非负 整数数组. 取数组中的一部分元素, 使得它们的和大于数组中其余元素的和, 求出满足条件的元素数量最小值.样例给出 nums = [3, 1, 7, 1], 返回 1给出 nums = [2, 1, 2], 返回 2思路:使得它们的和大于数组中其余元素的和,,注意这句话。隐含意思就是找到数组总和的一半 首先对整个数组进行排序,计算出总的数组之和,并找到数组和的一半 su...原创 2018-10-15 21:38:38 · 631 阅读 · 0 评论 -
1132. 合法的三角数
给定一个包含非负整数的数组,你的任务是计算从数组中选出的可以制作三角形的三元组数目,如果我们把它们作为三角形的边长。样例输入: [2,2,3,4]输出: 3解释:合法的组合如下: 2,3,4 (使用第一个 2)2,3,4 (使用第二个 2)2,2,3思路:和之前做过的三数之和比较类似第一种方法:可以暴力解决 但是时间复杂度O(n^3)第二种方法:两指针的方法...原创 2018-10-15 10:30:50 · 288 阅读 · 0 评论 -
422. 最后一个单词的长度
给定一个字符串, 包含大小写字母、空格' ',请返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。样例给定 s = "Hello World",返回 5。注意事项一个单词的界定是,由字母组成,但不包含任何的空格。思路:首先判断是否为空 从后往前遍历,判读是否为空格,不是空格计数加一 遇到下一个空格循环中止 返回public class Solution...原创 2018-09-28 13:57:33 · 137 阅读 · 0 评论 -
918、三数之和
给定一个n个整数的数组和一个目标整数target,找到下标为i、j、k的数组元素0 <= i < j < k < n,满足条件nums[i] + nums[j] + nums[k] < target.样例给定 nums = [-2,0,1,3], target = 2, 返回 2.解释:因为有两种三个元素之和,它们的和小于2:[-2, 0, 1][...原创 2018-10-12 16:51:45 · 255 阅读 · 0 评论 -
875. 矩阵中连续的最长的直线
给定一个01矩阵m,找出矩阵中连续的最长的直线。这条线可以是水平的,垂直的,对角线的或者反对角线的。样例给定 m = [ [0,1,1,0], [0,1,1,0], [0,0,0,1]]返回 3注意事项给定矩阵中的元素个数不超过10000。思路:看到题的时候想到了最笨的方法,但是感觉不应该这么做。所以找到了别人的做法,利用动态规划做的,虽然我也不是很清楚动态规...原创 2018-10-12 16:07:24 · 689 阅读 · 0 评论 -
532. 逆序对
在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。给你一个数组,求出这个数组中逆序对的总数。概括:如果a[i] > a[j] 且 i < j, a[i] 和 a[j] 构成一个逆序对。样例序列 [2, 4, 1, 3, 5] 中,有 3 个逆序对 (2, 1), (4, 1), (4, 3),则返回 3 。思路:很简单的方法,直接遍历就可以...原创 2018-10-12 14:51:58 · 184 阅读 · 0 评论 -
209. 第一个只出现一次的字符
给出一个字符串,找出第一个只出现一次的字符。样例对于 "abaccdeff", 'b'为第一个只出现一次的字符.思路:用一个数组统计每个字符出现的次数,然后再重新遍历字符串,找到第一个出现的字符相似题目:960、First Unique Number in a Stream ||157、判断字符串是否没有重复字符public class Solution { /** ...原创 2018-09-27 16:18:32 · 333 阅读 · 0 评论 -
64. 合并排序数组
合并两个排序的整数数组A和B变成一个新的数组。样例给出 A = [1, 2, 3, empty, empty], B = [4, 5]合并之后 A 将变成 [1,2,3,4,5]注意事项你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素。相似:839 合并两个排序的间隔列表 ||212、空格替换||6、合并排序数组提交一直不通过,lintcode...原创 2018-09-27 15:00:58 · 284 阅读 · 0 评论 -
2、尾部的零
刚看到这道题时没多考虑,就是利用阶乘算出结果然后转为字符数组,判断零的个数(刚发现判断的地方写错了),但是如果输入的值非常大,超过了取值范围,就会报错,而且这道题的思路不是这样的(我是个没有脑子的人!)思路:乘积中出现0一定是2和5的乘积具体思路就不写了,别人都写好了参考地址:https://blog.csdn.net/wutingyehe/article/details/46882181...原创 2018-09-21 14:21:04 · 105 阅读 · 0 评论 -
给定一个字符串,逐个翻转字符串中的每个单词。
LintCode中的反转字符串,自己写的不对 参考答案写出的思路: 先将整个数组反转,然后根据空格出现的位置,判断每个单词,再将整个单词反转 这里每个单词的位置是 index - i-1但是由于不能保证最后一个单词后面还有空格,所以最后一个要单独反转public class Test { public static void main(String [] args) ...原创 2018-09-20 21:30:02 · 1907 阅读 · 0 评论 -
397、 最长上升连续子序列
给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列。(最长上升连续子序列可以定义为从右到左或从左到右的序列。)样例给定 [5, 4, 2, 1, 3], 其最长上升连续子序列(LICS)为 [5, 4, 2, 1], 返回 4.给定 [5, 1, 2, 3, 4], 其最长上升连续子序列(LICS)为 [1, 2, 3, 4]...原创 2018-09-26 16:51:40 · 146 阅读 · 0 评论 -
44、最小子数组
给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。样例给出数组[1, -1, -2, 1],返回 -3注意事项子数组最少包含一个数字 思路:从第一个数开始累加,但是如果到第n个数开始和为正数,那么就没必要继续将后面的数组元素继续相加,因为无论第n+1个数为正还是为负,和前n个数的和想加以后都会让总和变得更大。因此,每做一次加和,就将此次得到得值和之前得到得最小...原创 2018-09-26 15:41:34 · 146 阅读 · 0 评论 -
9、fizz Buzz
public List<String> fizzBuzz(int n) { List<String> res = new ArrayList<String>(); for(int i = 1; i<=n; i++){ if(i%5 == 0 && i%3 == 0){ ...原创 2018-09-25 20:57:51 · 183 阅读 · 0 评论 -
31. 数组划分
给出一个整数数组 nums 和一个整数 k。划分数组(即移动数组 nums 中的元素),使得:所有小于k的元素移到左边 所有大于等于k的元素移到右边返回数组划分的位置,即数组中第一个位置 i,满足 nums[i] 大于等于 k。样例给出数组 nums = [3,2,2,1] 和 k = 2,返回 1.挑战使用 O(n) 的时间复杂度在数组上进行划分。注意事项你应该真...原创 2018-10-22 20:46:24 · 168 阅读 · 0 评论