- 博客(269)
- 收藏
- 关注
原创 [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
原创 [Lintcode] #153 数字组合 II
给出一组候选数字(C)和目标数字(T),找出C中所有的组合,使组合中数字的和为T。C中每个数字在每个组合中只能使用一次。 注意事项所有的数字(包括目标数字)均为正整数。元素组合(a1, a2, … , ak)必须是非降序(ie, a1 ≤ a2 ≤ … ≤ ak)。解集不能包含重复的组合。 您在真实的面试中是否遇到过这个题?
2017-11-07 23:44:04
386
原创 [Lintcode] #116 跳跃游戏
给出一个非负整数数组,你最初定位在数组的第一个位置。 数组中的每个元素代表你在那个位置可以跳跃的最大长度。 判断你是否能到达数组的最后一个位置。 注意事项这个问题有两个方法,一个是贪心和 动态规划。贪心方法时间复杂度为O(N)。动态规划方法的时间复杂度为为O(n^2)。我们手动设置小型数据集,使大家可以通过测试的两种方式。这仅仅是为了让大家学会如何
2017-11-06 21:18:09
392
原创 [Lintcode] #150 买卖股票的最佳时机 II
假设有一个数组,它的第i个元素是一个给定的股票在第i天的价格。设计一个算法来找到最大的利润。你可以完成尽可能多的交易(多次买卖股票)。然而,你不能同时参与多个交易(你必须在再次购买前出售股票)。您在真实的面试中是否遇到过这个题? Yes样例给出一个数组样例[2,1,2,0,1], 返回 2.public class Solution {
2017-11-03 19:13:25
431
原创 [Lintcode] #376 二叉树的路径和
给定一个二叉树,找出所有路径中各节点相加总和等于给定 目标值 的路径。一个有效的路径,指的是从根节点到叶节点的路径。您在真实的面试中是否遇到过这个题? Yes样例给定一个二叉树,和 目标值 = 5: 1 / \ 2 4 / \ 2 3返回:[ [1, 2, 2], [1, 4]]
2017-11-03 18:55:05
432
原创 [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
原创 [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
原创 [Lintcode] #49 字符大小写排序
给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。 注意事项小写字母或者大写字母他们之间不一定要保持在原始字符串中的相对位置。您在真实的面试中是否遇到过这个题? Yes样例给出"abAcD",一个可能的答案为"acbAD"public class Solution { /*
2017-10-27 11:53:08
480
原创 [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
原创 4.9 chmod和fchmod函数
我们使用这两个函数可以改变现有文件的访问权限。//函数原型//返回值:若成功则返回0,出错则返回-1#includeint chmod(const char *pathname, mode_t mode);int fchmod(int filedes, mode_t mode);chmod函数在指定的文件上进行操作,而fchmod函数则在已打开的文件上进行操作。条件:进
2017-10-26 18:51:51
451
原创 [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
原创 [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
原创 697. Degree of an Array
Given a non-empty array of non-negative integers nums, the degree of this array is defined as the maximum frequency of any one of its elements.Your task is to find the smallest possible length of
2017-10-23 11:16:16
425
原创 [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
原创 [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
原创 [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
原创 [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
原创 [Lintcode] #392 打劫房屋
假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最多可以得到多少钱 在不触动报警装置的情况下。样例给定 [3, 8, 4], 返回 8.
2017-10-19 01:00:24
302
原创 [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
原创 [Lintcode] #469 等价二叉树
检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。样例 1 1 / \ / \ 2 2 and 2 2 / /4 4就是两棵等价的二叉树。 1 1
2017-10-18 19:49:27
319
原创 [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
原创 [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
原创 [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
原创 [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
原创 [Lintcode] #423 有效的括号序列
给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列。样例括号必须依照 "()" 顺序表示, "()[]{}" 是有效的括号,但 "([)]"则是无效的括号。public class Solution { /* * @param s: A string
2017-10-18 14:55:22
406
原创 [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
原创 [Lintcode] #97 二叉树的最大深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。样例给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5这个二叉树的最大深度为3./** * Definition of TreeNode: * public class TreeNode { * public int val; *
2017-10-18 14:05:49
206
原创 [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
原创 [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
原创 [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
原创 [Lintcode] #53 翻转字符串
给定一个字符串,逐个翻转字符串中的每个单词。说明单词的构成:无空格字母构成一个单词输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个public class Solution { /* * @param s: A string * @return: A
2017-10-17 23:57:40
277
原创 [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
原创 [Lintcode] #700 杆子分割
题目描述给一个 n 英寸长的杆子和一个包含所有小于 n 的尺寸的价格. 确定通过切割杆并销售碎片可获得的最大值.例如,如果棒的长度为8,并且不同长度部件的值如下,则最大可获得值为 22(通过切割两段长度 2 和 6 )样例长度 | 1 2 3 4 5 6 7 8 ---------------------------
2017-10-17 15:11:44
528
原创 [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
原创 [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
原创 [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
原创 [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
原创 [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
256
原创 [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
原创 491. Increasing Subsequences
Given an integer array, your task is to find all the different possible increasing subsequences of the given array, and the length of an increasing subsequence should be at least 2 .Example:Inpu
2017-10-10 19:40:05
266
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人