LintCode刷题
Guoshi_Wan
往事越千年,魏武挥鞭,东临碣石有遗篇,萧瑟秋风今又是,换了人间!
展开
-
LintCode之22 平面列表
题目来源:平面列表题目描述: 给定一个列表,该列表中的每个要素要么是个列表,要么是整数。将其变成一个只包含整数的简单列表。样例:给定 [1,2,[1,2]],返回 [1,2,1,2]。给定 [4,[3,[2,[1]]]],返回 [4,3,2,1]。Java代码:public class Solution { // @param nestedList a list of NestedInteg原创 2017-11-28 22:05:14 · 421 阅读 · 0 评论 -
LintCode之366 斐波那契数列
题目链接:fibonacci 问题描述: 查找斐波纳契数列中第 N 个数。所谓的斐波纳契数列是指:前2个数是 0 和 1 。 第 i 个数是第 i-1 个数和第i-2 个数的和。 斐波纳契数列的前10个数字是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34 … Java代码:class Solution { /** * @param n: an integ原创 2016-07-06 13:39:30 · 540 阅读 · 0 评论 -
LintCode之2 尾部的零
题目来源:尾部的零 题目描述: 设计一个算法,计算出n阶乘中尾部零的个数 样例: 11! = 39916800,因此应该返回 2 Java代码:public long trailingZeros(long n) { // write your code here int maxfive = (int) (Math.log10(Double.parseDoub原创 2017-11-24 16:09:35 · 249 阅读 · 0 评论 -
LintCode之6 合并排序数组
题目来源:合并排序数组 题目描述: 合并两个排序的整数数组A和B变成一个新的数组。 样例: 给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]Java代码:public int[] mergeSortedArray(int[] A, int[] B) { // Write your code here int[] re原创 2017-11-24 16:11:32 · 201 阅读 · 0 评论 -
LintCode之8 旋转字符串
题目来源:旋转字符串 题目描述: 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 样例: 对于字符串 “abcdefg”. offset=0 => “abcdefg” offset=1 => “gabcdef” offset=2 => “fgabcde” offset=3 => “efgabcd” Java代码:public原创 2017-11-24 16:27:24 · 515 阅读 · 0 评论 -
LintCode之41 最大子数组
题目来源:最大子数组题目描述: 给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。样例: 给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6Java代码:public int maxSubArray(int[] nums) { // write your code int start=0,end=原创 2017-12-12 22:15:52 · 212 阅读 · 0 评论 -
LintCode之44 最小子数组
题目来源:最小子数组题目描述: 给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。样例: 给出数组[1, -1, -2, 1],返回 -3Java代码:public int minSubArray(ArrayList<Integer> nums) { // write your code int start=0,end=0,minsum=nums.get原创 2017-12-12 22:17:38 · 271 阅读 · 0 评论 -
LintCode之46 主元素
题目来源:主元素题目描述: 给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。样例: 给出数组[1,1,1,1,2,2,2],返回 1Java代码:public int majorityNumber(ArrayList<Integer> nums) { // write your code int[] number= new int原创 2017-12-13 21:01:20 · 348 阅读 · 0 评论 -
LintCode之50 数组剔除元素后的乘积
题目来源:数组提出元素后的乘积题目描述: 给定一个整数数组A。定义B[i] = A[0] * … * A[i-1] * A[i+1] * … * A[n-1], 计算B的时候请不要使用除法。样例 给出A=[1, 2, 3],返回 B为[6, 3, 2]Java代码:public ArrayList<Long> productExcludeItself(ArrayList<Integer> A)原创 2017-12-13 21:03:18 · 408 阅读 · 0 评论 -
LintCode之3 统计数字
题目来源:统计数字 题目描述: 计算数字k在0到n中的出现的次数,k可能是0~9的一个值样例: 例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现1出现了5次 (1, 10, 11, 12)Java代码:public int digitCounts(int k, int n) { // write your原创 2017-11-26 20:59:30 · 314 阅读 · 0 评论 -
LintCode之5 第k大元素
题目来源:第K大元素 题目描述: 在数组中找到第k大的元素样例 给出数组 [9,3,2,4,8],第三大的元素是 4给出数组 [1,2,3,4,5],第一大的元素是 5,第二大的元素是 4,第三大的元素是 3,以此类推Java代码:public int kthLargestElement(int k, int[] nums) { // write your code here原创 2017-11-26 21:01:45 · 329 阅读 · 0 评论 -
LintCode之13 字符串查找
题目来源:字符串查找题目描述: 对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1。样例: 如果 source = “source” 和 target = “target”,返回 -1。如果 source = “abcdabcdefg” 和 target = “bcd”原创 2017-11-27 22:07:12 · 395 阅读 · 0 评论 -
LintCode之39 恢复旋转排序数组
题目来源:恢复旋转排序数组题目描述: 给定一个旋转排序数组,在原地恢复其排序。什么是旋转数组?比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2,3,4], [2,3,4,1], [3,4,1,2], [4,1,2,3]样例 [4, 5, 1, 2, 3] -> [1, 2, 3, 4, 5]Java代码:public void recoverRotatedSortedArra原创 2017-12-07 23:13:32 · 502 阅读 · 0 评论 -
LintCode之40 用栈实现队列
题目来源:用栈实现队列题目描述: 正如标题所述,你需要使用两个栈来实现队列的一些操作。队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。pop和top方法都应该返回第一个元素的值。样例: 比如push(1), pop(), push(2), push(3), top(), pop(),你应该返回1,2和2Java代码:public原创 2017-12-07 23:16:37 · 229 阅读 · 0 评论 -
LintCode之38 搜索二维矩阵 II
题目来源:搜索二维矩阵 II 写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。这个矩阵具有以下特性:每行中的整数从左到右是排序的。每一列的整数从上到下是排序的。在每一行或每一列中没有重复的整数。样例 考虑下列矩阵: [ [1, 3, 5, 7], [2, 4, 7, 8], [3, 5, 9, 10] ]给出target = 3,返回 2原创 2017-12-07 23:10:53 · 434 阅读 · 0 评论 -
LintCode之53 翻转字符串
题目来源:翻转字符串题目描述: 给定一个字符串,逐个翻转字符串中的每个单词。样例:Java代码:public class Solution { /** * @param s : A string * @return : A string */ public String reverseWords(String s) { // write...原创 2018-02-26 23:05:12 · 293 阅读 · 0 评论 -
LintCode之452 删除链表中的元素
题目来源:remove-linked-list-elements 题目描述:删除链表中等于给定值val的所有节点。 样例 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。 Java代码:public class Solution { /** * @param head a ListNode原创 2016-07-06 13:45:36 · 837 阅读 · 0 评论 -
LintCode之1 A+B问题
题目来源:a-b-problem 题目描述: 给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。 样例 如果 a=1 并且 b=2,返回3 Java代码:class Solution { /* * param a: The first integer * param b: The second integer * return: The原创 2016-07-06 13:47:45 · 376 阅读 · 0 评论 -
LintCode之28 搜索二维矩阵
题目来源:搜索二维题目描述:写出一个高效的算法来搜索 m × n矩阵中的值。 这个矩阵具有以下特性:每行中的整数从左到右是排序的。每行的第一个数大于上一行的最后一个整数。样例:考虑下列矩阵: [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ]Java代码:public boolean searchMatrix(原创 2017-11-29 21:32:27 · 286 阅读 · 0 评论 -
LintCode之35 翻转链表
题目来源:翻转链表题目描述: 翻转一个链表样例: 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->nullJava代码:public ListNode reverse(ListNode head) { // write your code here int count=0; int[] xulie = new int[原创 2017-11-30 23:08:56 · 248 阅读 · 0 评论 -
LintCode之93 平衡二叉树
题目来源:平衡二叉树 题目描述: 给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过1。 样例 给出二叉树 A={3,9,20,#,#,15,7}, B={3,#,20,15,7} A) 3 B) 3 / \原创 2017-11-23 22:31:58 · 298 阅读 · 0 评论 -
LintCode之632 二叉树最大节点
题目来源:二叉树最大节点 题目描述: 在二叉树中寻找值最大的节点并返回。 样例: 给出如下一棵二叉树: 1 / \-5 2/ \ / \0 3 -4 -5 返回值为 3 的节点。 Java代码:public TreeNode maxNode(TreeNode root) { // Write your code here Tre原创 2017-11-22 22:41:51 · 294 阅读 · 0 评论 -
LintCode之128 哈希函数
题目来源:哈希函数 题目描述: 在数据结构中,哈希函数是用来将一个字符串(或任何其他类型)转化为小于哈希表大小且大于等于零的整数。一个好的哈希函数可以尽可能少地产生冲突。一种广泛使用的哈希函数算法是使用数值33,假设任何字符串都是基于33的一个大整数,比如:hashcode(“abcd”) = (ascii(a) * 333 + ascii(b) * 332 + ascii(c) *33 + a原创 2016-07-29 20:50:33 · 510 阅读 · 0 评论 -
LintCode之488 快乐数
题目来源:快乐数 题目描述: 写一个算法来判断一个数是不是”快乐数”。一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。 样例: 19 就是一个快乐数。1^2 + 9^2 = 82 8^2 + 2^2 = 68 6^2 + 8^2 = 100 1原创 2016-07-29 20:48:37 · 341 阅读 · 0 评论 -
LintCode之9 Fizz Buzz问题
题目来源Fizz Buzz问题 题目描述: 给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:如果这个数被3整除,打印fizz. 如果这个数被5整除,打印buzz. 如果这个数能同时被3和5整除,打印fizz buzz. 样例: 比如 n = 15, 返回一个字符串数组:[ “1”, “2”, “fizz”, “4”, “buzz”, “fizz”, “7”,原创 2016-07-29 20:46:46 · 584 阅读 · 0 评论 -
LintCode之14 二分查找
题目来源:二分查找 题目描述: 给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。 样例: 在数组 [1, 2, 3, 3, 4, 5, 10] 中二分查找3,返回2。 Java代码:public int binarySearch(int[] nums, int ta原创 2016-07-29 20:44:08 · 343 阅读 · 0 评论 -
LintCode之420 报数
题目来源:报数 题目描述: 报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示:1, 11, 21, 1211, 111221, …1 读作 “one 1” -> 11.11 读作 “two 1s” -> 21.21 读作 “one 2, then one 1” -> 1211.给定一个整数 n, 返回 第 n 个顺序。 Java代码String countAndSayFor原创 2016-07-29 20:42:21 · 323 阅读 · 0 评论 -
LintCode之365 二进制中有多少个1
题目来源:二进制中有多少个1 题目描述: 计算在一个 32 位的整数的二进制表式中有多少个 1. 样例 给定 32 (100000),返回 1给定 5 (101),返回 2给定 1023 (111111111),返回 9 Java代码public int countOnes(int num) { // write your code here int cou原创 2016-07-27 20:19:14 · 389 阅读 · 0 评论 -
LintCode之55 比较字符串
题目来源:比较字符串 题目描述: 比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母 样例 给出 A = “ABCD” B = “ACD”,返回 true给出 A = “ABCD” B = “AABC”, 返回 false Java代码public boolean compareStrings(String A, String B) {原创 2016-07-27 20:17:21 · 409 阅读 · 0 评论 -
LintCode111 之爬楼梯
题目来源:爬楼梯 题目描述: 假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? 样例 比如n=3,1+1+1=1+2=2+1=3,共有3中不同的方法返回 3 Java代码public int climbStairs(int n) { // write your code here int[] numbe原创 2016-07-27 20:12:47 · 578 阅读 · 0 评论 -
LintCode之66 二叉树的前序遍历
题目来源:二叉树的前序遍历 题目描述: 给出一棵二叉树 {1,#,2,3},1 \ 2 / 3 返回 [1,2,3]. Java代码public ArrayList<Integer> preorderTraversal(TreeNode root) { // write your code here ArrayLis原创 2016-07-27 20:11:08 · 392 阅读 · 0 评论 -
LintCode之167 链表求和
题目来源:链表求和 题目描述: 你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。 样例: 给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null Java代码: public ListNode addLists(ListNo原创 2016-07-27 20:07:03 · 467 阅读 · 0 评论 -
LintCode之408 二进制求和
题目来源:二进制求和 题目描述: 给定两个二进制字符串,返回他们的和(用二进制表示)。 样例 a = 11b = 1返回 100 Java代码:public String addBinary(String a, String b) { // Write your code here char[] a1 = a.toCharArray(); c原创 2016-07-27 20:04:02 · 503 阅读 · 0 评论 -
LintCode之56 两数之和
题目来源:两数之和题目描述:给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到 n-1。样例:给出 numbers = [2, 7, 11, 15], target = 9, 返回 [0, 1].Java代码:public class Solution { /...原创 2018-02-26 23:08:24 · 221 阅读 · 0 评论