
Lintcode
SHURamos
这个作者很懒,什么都没留下…
展开
-
[Lintcode] #53 翻转字符串
给定一个字符串,逐个翻转字符串中的每个单词。说明单词的构成:无空格字母构成一个单词输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个public class Solution { /* * @param s: A string * @return: A原创 2017-10-17 23:57:40 · 277 阅读 · 0 评论 -
[Lintocde] #57 三数之和
给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。 注意事项在三元组(a, b, c),要求a 结果不能包含重复的三元组。您在真实的面试中是否遇到过这个题? Yes样例如S = {-1 0 1 2 -1 -4}, 你需要返回的三元组集合的是:原创 2017-10-20 00:38:42 · 316 阅读 · 0 评论 -
[Lintcode] #1 A + B 问题
给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。public class Solution { /* * @param : An integer * @param : An integer * @return: The sum of a and b */ public int aplusb(int a, int原创 2017-10-11 13:34:20 · 239 阅读 · 0 评论 -
[Lintcode] #2 尾部的零
设计一个算法,计算出n阶乘中尾部零的个数public class Solution { /* * @param n: An integer * @return: An integer, denote the number of trailing zeros in n! */ public long trailingZeros(long n)原创 2017-10-11 14:00:30 · 255 阅读 · 0 评论 -
[Lintcode] #112 删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素每个元素只留下一个。样例给出 1->1->2->null,返回 1->2->null给出 1->1->2->3->3->null,返回 1->2->3->null/** * Definition for ListNode * public class ListNode { * int val; * List原创 2017-10-20 15:22:51 · 536 阅读 · 0 评论 -
[Lintcode] #41 最大子数组
给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。public class Solution { /* * @param nums: A list of integers * @return: A integer indicate the sum of max subarray */ public int maxSubArray(原创 2017-10-12 09:34:27 · 358 阅读 · 0 评论 -
[Lintcode] #116 跳跃游戏
给出一个非负整数数组,你最初定位在数组的第一个位置。 数组中的每个元素代表你在那个位置可以跳跃的最大长度。 判断你是否能到达数组的最后一个位置。 注意事项这个问题有两个方法,一个是贪心和 动态规划。贪心方法时间复杂度为O(N)。动态规划方法的时间复杂度为为O(n^2)。我们手动设置小型数据集,使大家可以通过测试的两种方式。这仅仅是为了让大家学会如何原创 2017-11-06 21:18:09 · 392 阅读 · 0 评论 -
[Lintcode] #138 子数组之和
给定一个整数数组,找到和为零的子数组。你的代码应该返回满足要求的子数组的起始位置和结束位置 注意事项There is at least one subarray that it's sum equals to zero.您在真实的面试中是否遇到过这个题? Yes样例给出 [-3, 1, 2, -3, 4],返回[0,原创 2017-10-29 22:34:01 · 370 阅读 · 0 评论 -
[Lintcode] #174 删除链表中倒数第n个节点
给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。/** * Definition for ListNode. * public class ListNode { * int val; * ListNode next; * ListNode(int val) { * this.val = val; * this.ne原创 2017-10-13 09:40:59 · 238 阅读 · 0 评论 -
[Lintcode] #165 合并两个排序链表
将两个排序链表合并为一个新的排序链表/** * Definition for ListNode. * public class ListNode { * int val; * ListNode next; * ListNode(int val) { * this.val = val; * this.next = nu原创 2017-10-13 09:52:28 · 275 阅读 · 0 评论 -
[Lintcode] #70 二叉树的层次遍历 II
给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历)/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode原创 2017-10-13 10:20:15 · 262 阅读 · 0 评论 -
[Lintcode] #153 数字组合 II
给出一组候选数字(C)和目标数字(T),找出C中所有的组合,使组合中数字的和为T。C中每个数字在每个组合中只能使用一次。 注意事项所有的数字(包括目标数字)均为正整数。元素组合(a1, a2, … , ak)必须是非降序(ie, a1 ≤ a2 ≤ … ≤ ak)。解集不能包含重复的组合。 您在真实的面试中是否遇到过这个题?原创 2017-11-07 23:44:04 · 386 阅读 · 0 评论 -
[Lintcode] #135 数字组合
给出一组候选数字(C)和目标数字(T),找到C中所有的组合,使找出的数字和为T。C中的数字可以无限制重复被选取。例如,给出候选数组[2,3,6,7]和目标数字7,所求的解为:[7],[2,2,3] 注意事项所有的数字(包括目标数字)均为正整数。元素组合(a1, a2, … , ak)必须是非降序(ie, a1 ≤ a2 ≤ … ≤ ak)。解集不原创 2017-11-07 23:57:25 · 574 阅读 · 0 评论 -
[Lintcode] #101 删除排序数组中的重复数字 II
跟进“删除重复数字”:如果可以允许出现两次重复将如何处理?public class Solution { /** * @param A: a array of integers * @return : return an integer */ public int removeDuplicates(int[] nums) {原创 2017-10-23 17:00:07 · 342 阅读 · 0 评论 -
[Lintcode] #170 旋转链表
给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数样例给出链表1->2->3->4->5->null和k=2返回4->5->1->2->3->null/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNo原创 2017-10-23 22:10:51 · 297 阅读 · 0 评论 -
[Lintcode] #700 杆子分割
题目描述给一个 n 英寸长的杆子和一个包含所有小于 n 的尺寸的价格. 确定通过切割杆并销售碎片可获得的最大值.例如,如果棒的长度为8,并且不同长度部件的值如下,则最大可获得值为 22(通过切割两段长度 2 和 6 )样例长度 | 1 2 3 4 5 6 7 8 ---------------------------原创 2017-10-17 15:11:44 · 528 阅读 · 0 评论 -
[Lintcode] #56 两数之和
给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。样例给出 numbers = [2, 7, 11, 15], target = 9, 返回 [1, 2].public class Solution {原创 2017-10-17 15:53:48 · 266 阅读 · 0 评论 -
[Lintcode] #376 二叉树的路径和
给定一个二叉树,找出所有路径中各节点相加总和等于给定 目标值 的路径。一个有效的路径,指的是从根节点到叶节点的路径。您在真实的面试中是否遇到过这个题? Yes样例给定一个二叉树,和 目标值 = 5: 1 / \ 2 4 / \ 2 3返回:[ [1, 2, 2], [1, 4]]原创 2017-11-03 18:55:05 · 432 阅读 · 0 评论 -
[Lintcode] #452 删除链表中的元素
删除链表中等于给定值val的所有节点。您在真实的面试中是否遇到过这个题? Yes样例给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。/** * Definition for singly-linked list. * public class ListNode原创 2017-10-27 13:15:53 · 341 阅读 · 0 评论 -
[Lintcode] #49 字符大小写排序
给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。 注意事项小写字母或者大写字母他们之间不一定要保持在原始字符串中的相对位置。您在真实的面试中是否遇到过这个题? Yes样例给出"abAcD",一个可能的答案为"acbAD"public class Solution { /*原创 2017-10-27 11:53:08 · 480 阅读 · 0 评论 -
[Lintcode] #167 链表求和
你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。样例给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null/** * Definition for singly-linked list. * publ原创 2017-10-17 23:59:15 · 271 阅读 · 0 评论 -
[Lintcode] #82 落单的数
给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。样例给出 [1,2,2,1,3,4,3],返回 4public class Solution { /* * @param A: An integer array * @return: An integer */ public int原创 2017-10-18 00:12:38 · 290 阅读 · 0 评论 -
[Lintcode] #413 反转整数
将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。样例给定 x = 123,返回 321给定 x = -123,返回 -321public class Solution { /* * @param n: the integer to be reversed * @return: the reversed原创 2017-10-18 13:47:01 · 307 阅读 · 0 评论 -
[Lintcode] #97 二叉树的最大深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。样例给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5这个二叉树的最大深度为3./** * Definition of TreeNode: * public class TreeNode { * public int val; *原创 2017-10-18 14:05:49 · 206 阅读 · 0 评论 -
[Lintcode] #407 加一
给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。该数字按照大小进行排列,最大的数在列表的最前面。样例给定 [1,2,3] 表示 123, 返回 [1,2,4].给定 [9,9,9] 表示 999, 返回 [1,0,0,0].public class Solution { /* * @param digit原创 2017-10-18 14:41:21 · 276 阅读 · 0 评论 -
[Lintcode] #423 有效的括号序列
给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列。样例括号必须依照 "()" 顺序表示, "()[]{}" 是有效的括号,但 "([)]"则是无效的括号。public class Solution { /* * @param s: A string原创 2017-10-18 14:55:22 · 406 阅读 · 0 评论 -
[Lintcode] #111 爬楼梯
假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?样例比如n=3,1+1+1=1+2=2+1=3,共有3种不同的方法返回 3public class Solution { /** * @param n: An integer * @return: An integer原创 2017-10-18 15:03:47 · 270 阅读 · 0 评论 -
[Lintcode] #491 回文数
判断一个正整数是不是回文数。回文数的定义是,将这个数反转之后,得到的数仍然是同一个数。样例11, 121, 1, 12321 这些是回文数。23, 32, 1232 这些不是回文数。public class Solution { /* * @param num: a positive number * @ret原创 2017-10-18 15:21:58 · 302 阅读 · 0 评论 -
[Lintcode] #100 删除排序数组中的重复数字
给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。样例给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]。public class Solution { /* * @param nums: An ineger array原创 2017-10-18 16:31:01 · 231 阅读 · 0 评论 -
[Lintcode] #78 最长公共前缀
给k个字符串,求出他们的最长公共前缀(LCP)样例在 "ABCD" "ABEF" 和 "ACEF" 中, LCP 为 "A"在 "ABCDEFG", "ABCEFG", "ABCEFA" 中, LCP 为 "ABC"广度优先:public class Solution { /* * @param strs: A list of s原创 2017-10-18 18:45:20 · 289 阅读 · 0 评论 -
[Lintcode] #469 等价二叉树
检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。样例 1 1 / \ / \ 2 2 and 2 2 / /4 4就是两棵等价的二叉树。 1 1原创 2017-10-18 19:49:27 · 319 阅读 · 0 评论 -
[Lincode] #149 买卖股票的最佳时机
假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。样例给出一个数组样例 [3,2,3,1,2], 返回 1 public class Solution { /* * @param prices: Given an integer array * @re原创 2017-10-19 00:44:22 · 447 阅读 · 0 评论 -
[Lintcode] #392 打劫房屋
假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最多可以得到多少钱 在不触动报警装置的情况下。样例给定 [3, 8, 4], 返回 8.原创 2017-10-19 01:00:24 · 302 阅读 · 0 评论 -
[Lintcode] #488 快乐数
写一个算法来判断一个数是不是"快乐数"。一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。样例19 就是一个快乐数。1^2 + 9^2 = 828^2 + 2^2 = 686^2 + 8^2 = 1001^2 +原创 2017-10-19 12:05:16 · 300 阅读 · 0 评论 -
[Lintcode] #175 翻转二叉树
翻转一棵二叉树样例 1 1 / \ / \2 3 => 3 2 / \ 4 4非递归:/** * Definition of TreeNode: * public class TreeNode { * public int val; * public T原创 2017-10-19 17:32:04 · 308 阅读 · 0 评论 -
[Lincode] #14 二分查找
给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。样例在数组 [1, 2, 3, 3, 4, 5, 10] 中二分查找3,返回2。挑战 如果数组中的整数个数超过了2^32,你的算法是否会出错?class Solu原创 2017-10-27 11:39:52 · 278 阅读 · 0 评论 -
[Lintcode] #150 买卖股票的最佳时机 II
假设有一个数组,它的第i个元素是一个给定的股票在第i天的价格。设计一个算法来找到最大的利润。你可以完成尽可能多的交易(多次买卖股票)。然而,你不能同时参与多个交易(你必须在再次购买前出售股票)。您在真实的面试中是否遇到过这个题? Yes样例给出一个数组样例[2,1,2,0,1], 返回 2.public class Solution {原创 2017-11-03 19:13:25 · 428 阅读 · 0 评论