
刷题相关
fk543
fk5431.com
展开
-
二叉树的路径和
给定一个二叉树,找出所有路径中各节点相加总和等于给定 目标值 的路径。一个有效的路径,指的是从根节点到叶节点的路径。 您在真实的面试中是否遇到过这个题? 样例给定一个二叉树,和 目标值 = 5: 1 / \ 2 4/ \2 3返回:[ [1, 2, 2], [1, 4]]package com.fk5431;import java.util.Ar原创 2017-06-25 22:42:16 · 557 阅读 · 7 评论 -
搜索二维矩阵 II
写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。这个矩阵具有以下特性:每行中的整数从左到右是排序的。每一列的整数从上到下是排序的。在每一行或每一列中没有重复的整数。您在真实的面试中是否遇到过这个题? Yes样例考虑下列矩阵:[ [1, 3, 5, 7], [2, 4, 7, 8]原创 2015-12-24 17:31:58 · 783 阅读 · 0 评论 -
搜索旋转排序数组 II
跟进“搜索旋转排序数组”,假如有重复元素又将如何?是否会影响运行时间复杂度?如何影响?为何会影响?写出一个函数判断给定的目标值是否出现在数组中。您在真实的面试中是否遇到过这个题? Yes样例给出[3,4,4,5,7,0,1,2]和target=4,返回 true*********************原创 2015-12-24 17:13:32 · 1427 阅读 · 0 评论 -
寻找旋转排序数组中的最小值 II
假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。你需要找到其中最小的元素。数组中可能存在重复的元素。您在真实的面试中是否遇到过这个题? Yes样例给出[4,4,5,6,7,0,1,2] 返回 0***********************************原创 2015-12-24 16:54:36 · 2599 阅读 · 2 评论 -
快速幂
计算an % b,其中a,b和n都是32位的整数。您在真实的面试中是否遇到过这个题? Yes样例例如 231 % 3 = 2例如 1001000 % 1000 = 0挑战O(logn)********************************************************a^n %原创 2016-01-06 18:57:12 · 910 阅读 · 0 评论 -
不同的二叉查找树
给出 n,问由 1...n 为节点组成的不同的二叉查找树有多少种?您在真实的面试中是否遇到过这个题? Yes样例给出n = 3,有5种不同形态的二叉查找树:1 3 3 2 1 \ / / / \ \ 3 2 1 1原创 2016-01-06 18:22:30 · 901 阅读 · 0 评论 -
更新二进制位——LintCode
给出两个32位的整数N和M,以及两个二进制位的位置i和j。写一个方法来使得N中的第i到j位等于M(M会是N中从第i为开始到第j位的子串)您在真实的面试中是否遇到过这个题? Yes样例给出N = (10000000000)2,M = (10101)2, i = 2, j = 6返回 N = (10001010100)2挑战原创 2016-01-06 17:17:39 · 1076 阅读 · 0 评论 -
搜索旋转排序数组 查看运行结果 ——LintCode
假设有一个排序的按未知的旋转轴旋转的数组(比如,0 1 2 4 5 6 7 可能成为4 5 6 7 0 1 2)。给定一个目标值进行搜索,如果在数组中找到目标值返回数组中的索引位置,否则返回-1。你可以假设数组中不存在重复的元素。您在真实的面试中是否遇到过这个题? Yes样例给出[4, 5, 1, 2, 3]和target=1,返回 2给原创 2015-12-17 16:39:48 · 1061 阅读 · 0 评论 -
搜索区间——LintCode
给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。如果目标值不在数组中,则返回[-1, -1]您在真实的面试中是否遇到过这个题? Yes样例给出[5, 7, 7, 8, 8, 10]和目标值target=8,返回[3, 4]挑战时间复杂度 O(log n)*************原创 2015-12-17 17:38:41 · 996 阅读 · 1 评论 -
寻找峰值 查看运行结果 ——LintCode
你给出一个整数数组(size为n),其具有以下特点:相邻位置的数字是不同的A[0] A[n - 1]假定P是峰值的位置则满足A[P] > A[P-1]且A[P] > A[P+1],返回数组中任意一个峰值的位置。您在真实的面试中是否遇到过这个题? Yes样例给出数组[1, 2, 1, 3, 4, 5, 7, 6]返回1, 即数值原创 2015-12-16 14:25:21 · 1313 阅读 · 0 评论 -
将整数A转换为B
如果要将整数A转换为B,需要改变多少个bit位?您在真实的面试中是否遇到过这个题? Yes样例如把31转换为14,需要改变2个bit位。(31)10=(11111)2(14)10=(01110)2挑战你能想出几种方法?****************************************异或原创 2015-12-24 19:21:59 · 1041 阅读 · 0 评论 -
不同的路径
有一个机器人的位于一个M×N个网格左上角(下图中标记为'Start')。机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角(下图中标记为'Finish')。问有多少条不同的路径?您在真实的面试中是否遇到过这个题? Yes样例1,11,21,31,41,5原创 2015-12-24 19:45:27 · 1246 阅读 · 0 评论 -
尾部的零
设计一个算法,计算出n阶乘中尾部零的个数您在真实的面试中是否遇到过这个题? Yes样例11! = 39916800,因此应该返回 2挑战O(logN)的时间复杂度**************************各种超时 …… 编程之美上的这个思路也超时class Solution { /*原创 2015-12-24 20:26:33 · 793 阅读 · 0 评论 -
欧拉计划——31
In England the currency is made up of pound, £, and pence, p, and there are eight coins in general circulation:1p, 2p, 5p, 10p, 20p, 50p, £1 (100p) and £2 (200p).It is possible to make £2 in the follo原创 2017-01-14 12:06:00 · 1124 阅读 · 0 评论 -
有关优先对列的题——UVA12100 - Printer Queue
原题如下:The only printer in the computer science students'union is experiencing an extremely heavy workload.Sometimes there are a hundred jobs in the printerqueue and you may have to wait for hours t原创 2015-04-15 23:50:36 · 1285 阅读 · 0 评论 -
lintcode——栅栏染色
我们有一个栅栏,它有n个柱子,现在要给柱子染色,有k种颜色可以染。 必须保证任意两个相邻的柱子颜色不同,求有多少种染色方案。 注意事项 n和k都是非负整数样例n = 3, k = 2, return 6 post 1, post 2, post 3 way1 0 0 1 way2 0 1 0 w原创 2017-01-11 20:11:29 · 773 阅读 · 0 评论 -
LintCode-最大数
给出一组非负整数,重新排列他们的顺序把他们组成一个最大的整数。 注意事项最后的结果可能很大,所以我们返回一个字符串来代替这个整数。您在真实的面试中是否遇到过这个题? Yes样例给出 [1, 20, 23, 4, 8],返回组合最大的整数应为8423201。package LintCode;import ja原创 2016-05-13 22:07:48 · 1375 阅读 · 0 评论 -
LintCode 加油站
在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i],并且从第_i_个加油站前往第_i_+1个加油站需要消耗汽油cost[i]。你有一辆油箱容量无限大的汽车,现在要从某一个加油站出发绕环路一周,一开始油箱为空。求可环绕环路一周时出发的加油站的编号,若不存在环绕一周的方案,则返回-1。 注意事项数据保证答案唯一。您在真实的面试中是否遇到原创 2016-05-13 21:45:01 · 978 阅读 · 0 评论 -
LintCode 主元素
给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。您在真实的面试中是否遇到过这个题? Yes样例给出数组[1,1,1,1,2,2,2],返回 1public class Solution { /** * @param nums: a list of integers *原创 2016-05-13 21:17:35 · 929 阅读 · 0 评论 -
LintCode 落单的数
给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。您在真实的面试中是否遇到过这个题? Yes样例给出 [1,2,2,1,3,4,3],返回 4挑战 一次遍历,常数级的额外空间复杂度**************************************************原创 2016-05-13 21:08:18 · 1199 阅读 · 0 评论 -
LintCode 二进制表示
给定一个数将其转换为二进制(均用字符串表示),如果这个数的小数部分不能在 32 个字符之内来精确地表示,则返回 "ERROR"。您在真实的面试中是否遇到过这个题? Yes样例n = "3.72", 返回 "ERROR".n = "3.5", 返回 "11.1".*************************************原创 2016-05-13 20:59:24 · 1118 阅读 · 0 评论 -
字符串查找
对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1。样例如果 source = "source" 和 target = "target",返回 -1。如果 source = "abcdabcdefg" 和 targe原创 2015-12-09 19:37:56 · 1005 阅读 · 0 评论 -
寻找旋转排序数组中的最小值——LintCode
假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。你需要找到其中最小的元素。你可以假设数组中不存在重复的元素。您在真实的面试中是否遇到过这个题? Yes样例给出[4,5,6,7,0,1,2] 返回 0public class Solution { /原创 2015-12-16 14:13:32 · 1448 阅读 · 0 评论 -
木材加工
有一些原木,现在想把这些木头切割成一些长度相同的小段木头,需要得到的小段的数目至少为 k。当然,我们希望得到的小段越长越好,你需要计算能够得到的小段木头的最大长度。您在真实的面试中是否遇到过这个题? Yes样例有3根木头[232, 124, 456], k=7, 最大长度为114.注意木头长度的单位是厘米。原木的长度都是正原创 2015-12-16 13:56:55 · 2005 阅读 · 0 评论 -
二分查找——LintCode
给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。您在真实的面试中是否遇到过这个题? Yes样例在数组 [1, 2, 3, 3, 4, 5, 10] 中二分查找3,返回2。挑战如果数组中的整数个数超过了2原创 2015-12-14 21:31:49 · 1074 阅读 · 0 评论 -
子数组之和_LintCode
给定一个整数数组,找到和为零的子数组。你的代码应该返回满足要求的子数组的起始位置和结束位样例给出 [-3, 1, 2, -3, 4],返回[0, 2] 或者 [1, 3].public class Solution { /** * @param nums: A list of integers * @return: A list原创 2015-12-10 19:26:44 · 679 阅读 · 0 评论 -
数组划分——LintCode
给出一个整数数组nums和一个整数k。划分数组(即移动数组nums中的元素),使得:所有小于k的元素移到左边所有大于等于k的元素移到右边返回数组划分的位置,即数组中第一个位置i,满足nums[i]大于等于k。您在真实的面试中是否遇到过这个题? Yes样例给出数组nums=[3,2,2,1]和 k=2,返回 1原创 2015-12-11 13:03:42 · 869 阅读 · 0 评论 -
最长公共前缀_LinkCode
给k个字符串,求出他们的最长公共前缀(LCP)样例在 "ABCD" "ABEF" 和 "ACEF" 中, LCP 为 "A"在 "ABCDEFG", "ABCEFG", "ABCEFA" 中, LCP 为 "ABC"public class Solution { /** * @param strs: A list of strings原创 2015-12-10 18:49:55 · 896 阅读 · 0 评论 -
合并排序数组 II——LintCode
合并两个排序的整数数组A和B变成一个新的数组。您在真实的面试中是否遇到过这个题? Yes样例给出A = [1, 2, 3, empty, empty] B = [4,5]合并之后A将变成[1,2,3,4,5]注意你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素。//m是A数组中不为空的原创 2015-12-10 19:58:05 · 848 阅读 · 0 评论 -
删除排序数组中的重复数字——LintCode
删除排序数组中的重复数字给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。您在真实的面试中是否遇到过这个题? Yes样例给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]。publ原创 2015-12-10 19:39:40 · 1360 阅读 · 0 评论 -
两数之和
给一个整数数组,找到两个数使得他们的和等于一个给定的数target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是1到n,不是以0开头。您在真实的面试中是否遇到过这个题? Yes样例numbers=[2, 7, 11, 15], target=9return [1, 2]原创 2015-12-11 13:02:47 · 771 阅读 · 0 评论 -
丢失的第一个正整数——LintCode
给出一个无序的正数数组,找出其中没有出现的最小正整数。您在真实的面试中是否遇到过这个题? Yes样例如果给出 [1,2,0], return 3如果给出 [3,4,-1,1], return 2挑战只允许时间复杂度O(n)的算法,并且只能使用常数级别的空间。public class Solution {原创 2015-12-10 20:32:40 · 908 阅读 · 0 评论 -
乱序字符串_LintCode
给出一个字符串数组S,找到其中所有的乱序字符串(Anagram)。如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中。样例对于字符串数组 ["lint","intl","inlt","code"]返回 ["lint","inlt","intl"]注意所有的字符串都只包含小写字母public原创 2015-12-09 20:04:48 · 1695 阅读 · 0 评论 -
LintCode 比较字符串
比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母样例给出 A = "ABCD" B = "ACD",返回 true给出 A = "ABCD" B = "AABC", 返回 false注意在 A 中出现的 B 字符串里的字符不需要连续或者有序。public class Solution原创 2015-12-09 17:17:19 · 855 阅读 · 0 评论 -
三数之和——LintCode
给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。您在真实的面试中是否遇到过这个题? Yes样例如S = {-1 0 1 2 -1 -4}, 你需要返回的三元组集合的是:(-1, 0, 1)(-1, -1, 2)注意在三元组(a, b, c),要求原创 2015-12-11 13:01:06 · 1450 阅读 · 1 评论 -
删除元素_LinkCode
给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度。元素的顺序可以改变,并且对新的数组不会有影响。样例给出一个数组 [0,4,4,0,0,2,4,4],和值 4返回 4 并且4个元素的新数组为[0,0,0,2]public class Solution { /** *@param A: A list of integ原创 2015-12-10 18:54:16 · 902 阅读 · 0 评论 -
数组剔除元素后的乘积——LintCode
给定一个整数数组A。定义B[i] = A[0] * ... * A[i-1] * A[i+1] * ... * A[n-1], 计算B的时候请不要使用除法。您在真实的面试中是否遇到过这个题? Yes样例给出A=[1, 2, 3],返回 B为[6, 3, 2]public class Solution { /** *原创 2015-12-10 20:12:43 · 1110 阅读 · 0 评论 -
搜索二维矩阵——LintCode
写出一个高效的算法来搜索 m × n矩阵中的值。这个矩阵具有以下特性:每行中的整数从左到右是排序的。每行的第一个数大于上一行的最后一个整数。您在真实的面试中是否遇到过这个题? Yes样例考虑下列矩阵:[ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]给出 targ原创 2015-12-14 21:21:54 · 666 阅读 · 0 评论 -
搜索插入位置
给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。你可以假设在数组中无重复元素。您在真实的面试中是否遇到过这个题? Yes样例[1,3,5,6],5 → 2[1,3,5,6],2 → 1[1,3,5,6], 7 → 4[1,3,5,6],0 → 0************原创 2015-12-14 21:07:53 · 683 阅读 · 0 评论 -
最接近零的子数组和_LintCode
给定一个整数数组,找到一个和最接近于零的子数组。返回第一个和最有一个指数。你的代码应该返回满足要求的子数组的起始位置和结束位置您在真实的面试中是否遇到过这个题? Yes样例给出[-3, 1, 1, -3, 5],返回[0, 2],[1, 3], [1, 1], [2, 2] 或者[0, 4]。挑战O(nlogn)的原创 2015-12-14 17:06:19 · 1072 阅读 · 0 评论