LintCode
本专栏是关于自己对LintCode上题目的解题思路及代码,对刷题感兴趣的小伙伴可以私信联系。专栏代码打包Github地址如下,欢迎点星关注:
https://github.com/MartinYan623/Lint-Code
麦片加奶不加糖
NUS研究生毕业 目前互联网行业工作
爱好编程 | 机器学习 | 数据分析 | 炒股
展开
-
【LintCode 中等】692. 滑动窗口内唯一元素数量和
1. 描述给一个数组和一个滑动窗口的大小, 求每一个窗口内只出现一次的元素的个数和2. 样例输入:[1, 2, 1, 3, 3]3输出:5解释:第一个窗口为 [1, 2, 1], 只有 2 是唯一的, 计数为 1.第二个窗口为 [2, 1, 3], 所有的元素都是唯一的, 计数为 3.第三个窗口为 [1, 3, 3], 只有 1 是唯一的, 计数为 1.总数为 1 + 3 + 1 = 5输入:[1, 2, 1, 2, 1]3输出:33. 代码本题考查滑.原创 2021-04-29 09:40:25 · 123 阅读 · 0 评论 -
【LintCode 简单】642. 数据流滑动窗口平均值
1. 描述给出一串整数流和窗口大小,计算滑动窗口中所有整数的平均值。2. 样例MovingAverage m = new MovingAverage(3);m.next(1) = 1 // 返回 1.00000m.next(10) = (1 + 10) / 2 // 返回 5.50000m.next(3) = (1 + 10 + 3) / 3 // 返回 4.66667m.next(5) = (10 + 3 + 5) / 3 // 返回 6.000003. 代码本题相.原创 2021-04-28 16:20:43 · 213 阅读 · 0 评论 -
【LintCode 简单】326. 滑动数独
1. 描述给定一个3×n3×n的矩阵number,并且该矩阵只含有1到9的正整数。考虑有一个大小为3×33×3滑动窗口,从左到右遍历该矩阵number,那么该滑动窗口在遍历整个矩阵的过程中会有n-2个。现在你的任务是找出这些滑动窗口是否含有1到9的所有正整数请返回一个长度为n-2的答案数组,如果第i个滑动窗口含有1到9的所有正整数,那么答案数组的第i个元素为true,否则为false2. 样例输入:[[1,2,3,2,5,7],[4,5,6,1,7,6],[7,8,9...原创 2021-04-27 17:22:47 · 116 阅读 · 0 评论 -
【LintCode 简单】1168. 数组评分
1. 描述有一个数组numsnums,以及三个正整数k,u,lk,u,l。对于numsnums的所有长为kk的子段,如果它的总和小于uu,就得11分,如果它的总和大于ll,就扣11分。请求出最终能获得多少分?2. 样例样例输入:nums = [0, 1, 2, 3, 4]k = 2u = 2l = 5样例输出:03. 代码本题如果使用两层循环,会在测试用例中报超时无法通过。考虑使用两个循环,但仅用一层循环完成。class Solution: """原创 2021-04-27 15:00:20 · 168 阅读 · 0 评论 -
【LintCode 简单】1871. 最大时刻
1. 描述给一个24小时制的时间(00:00-23:59),其中有一个或多个数字是问号。问号处可以用任何一个数字代替,问可以表示的最大时间是多少。2. 样例样例1:输入:time = "2?:00"输出:"23:00"样例2:输入:time = "??:??"输出:"23:59"3. 代码对问题的多种情况进行考虑,使用了嵌套的判断语句class Solution: """ @param time: a string of T...原创 2021-04-26 16:47:52 · 120 阅读 · 0 评论 -
【LintCode 简单】1881. 飞机座位
1. 描述您的任务是为四口之家尽可能多的分配座位。一个四口之家必须占领一排当中连续的四个座位。过道上的座位(例如2C和2D)不被认为是彼此相邻的。一家人被过道分开是可以的,但在这种情况下必须每一边坐两个。编写一个函数class Solution {public int solution(int N,String S};函数中N表示有N排座位,S表示已经提供出去的座位,函数返回剩下的座位能坐四口之家的最大值。例如, N = 2,S = '1A 2F 1C’,你的函数应该返回2.下图给出了做法。原创 2021-04-26 11:49:38 · 316 阅读 · 2 评论 -
【LintCode 简单】1901. 有序数组的平方
1. 描述给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。2. 样例输入:[-4,-1,0,3,10]输出:[0,1,9,16,100]输入:[-7,-3,2,3,11]输出:[4,9,9,49,121]3. 代码class Solution: """ @param A: The array A. @return: The array of the squares. """ .原创 2021-04-21 20:42:24 · 115 阅读 · 0 评论 -
【LintCode 简单】1503. 找零
1. 描述某国的货币系统包含面值11元、44元、1616元、6464元共44种硬币,以及面值10241024元的纸币。你现在使用10241024元的纸币购买了一件价值为N,0<N<=1024N,0<N<=1024元的商品,请问最少会收到多少个硬币作为找零。2. 样例样例输入1:amount = 1014样例输出1:4找零 2 个 4 元硬币,和 2 个 1 元硬币。样例输入2:amount = 1004样例输出2:2...原创 2021-04-21 20:28:41 · 99 阅读 · 0 评论 -
【LintCode 简单】838. 子数组和为K
1. 问题描述给定一个整数数组和一个整数k,你需要找到连续子数列的和为k的总个数。2. 样例样例1输入: nums = [1,1,1] 和 k = 2输出: 2解释:子数组 [0,1] 和 [1,2]样例2输入: nums = [2,1,-1,1,2] 和 k = 3输出: 4解释:子数组 [0,1], [1,4], [0,3] and [3,4]3. 代码方法一: 暴力枚举 但是使用Python方法会超时class Solution: ...原创 2021-03-02 22:10:43 · 73 阅读 · 0 评论 -
【LintCode 入门】25. 打印X
1. 问题描述输入一个正整数N, 你需要按如下方式返回一个字符串列表。2.样例样例 1:输入:1输出:["X"]样例 2:输入:2输出:["XX","XX"]样例 3:输入:3输出:["X X"," X ","X X"]样例 4:输入:4输出:["X X"," XX "," XX ","X X"]样例 5:输入:5输出:["X X"," X X "," X "," X X ",.原创 2021-03-01 22:45:42 · 409 阅读 · 2 评论 -
【LintCode 简单】1910. 数组中出现次数最多的值
1. 问题描述在给定的数组中,找到出现次数最多的数字。出现次数相同时,返回数值最小的数字。2. 样例样例 1:输入: [1,1,2,3,3,3,4,5]输出: 3样例 2:输入: [1]输出: 13. 代码class Solution: """ @param array: An array. @return: An integer. """ def findNumber(self, array):原创 2021-02-28 16:58:17 · 548 阅读 · 0 评论 -
【LintCode 简单】484. 交换数组两个元素
1. 问题描述给你一个数组和两个索引,交换下标为这两个索引的数字2. 样例样例 1:输入: [1, 2, 3, 4], index1 = 2, index2 = 3输出: 交换后你的数组应该是[1, 2, 4, 3], 不需要返回任何值,只要就地对数组进行交换即可。样例解释: 就地交换,不需要返回值。样例 2:输入: [1, 2, 2, 2], index1 = 0, index2 = 3输出: 交换后你的数组应该是[2, 2, 2, 1], 不需要返回任何值,.原创 2021-02-28 16:55:46 · 88 阅读 · 0 评论 -
【LintCode 简单】296. 数组去重
1.问题描述:给定一个长度为NN的整数数组arrarr,返回去掉重复元素之后的数组(去掉重复元素前后数组元素相对次序不变)2.样例:输入:[3,4,3,6]输出:[3,4,6]解释:元素3重复,所以只需要保留一个元素3而且去重前后数组元素相对次序不变,所以元素4还在元素3后面,元素6还在元素3,4后面3.代码:class Solution: """ @param arr: a integer array @return: return th..原创 2020-08-19 13:14:08 · 169 阅读 · 0 评论 -
【LintCode 简单】212. 空格替换
1.问题描述:设计一种方法,将一个字符串中的所有空格替换成%20。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。你的程序还需要返回被替换后的字符串的长度。2.样例:样例 1:输入:string[] = "Mr John Smith" and length = 13输出:string[] = "Mr%20John%20Smith" and return 17解释:对于字符串 "Mr John Smith",长度为 13。替换空格之后,参数中的字符..原创 2020-08-18 12:07:15 · 148 阅读 · 0 评论 -
【LintCode 简单】188. 插入五
1.问题描述:给定一个数字,在数字的任意位置插入一个5,使得插入后的这个数字最大2.样例:样例 1:输入: a = 234输出: 5234 3.代码:class Solution: """ @param a: A number @return: Returns the maximum number after insertion """ def InsertFive(self, a): # writ...原创 2020-08-18 11:30:28 · 560 阅读 · 0 评论 -
【LintCode 简单】174. 删除链表中倒数第n个节点
1.问题描述:给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。2.样例:Example 1: Input: list = 1->2->3->4->5->null, n = 2 Output: 1->2->3->5->nullExample 2: Input: list = 5->4->3->2->1->null, n = 2 Output: 5->4...原创 2020-08-17 21:36:55 · 118 阅读 · 0 评论 -
【LintCode 简单】167. 链表求和
1.问题描述:你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。2.样例:样例 1:输入: 7->1->6->null, 5->9->2->null输出: 2->1->9->null 样例解释: 617 + 295 = 912, 912 转换成链表: 2->1->9->null样例 2:...原创 2020-08-17 20:50:34 · 114 阅读 · 0 评论 -
【LintCode 简单】156. 合并区间
1.问题描述:给出若干闭合区间,合并所有重叠的部分。2.样例:样例1:输入: [(1,3)]输出: [(1,3)]样例 2:输入: [(1,3),(2,6),(8,10),(15,18)]输出: [(1,6),(8,10),(15,18)]3.代码:"""Definition of Interval.class Interval(object): def __init__(self, start, end): self.start ..原创 2020-08-12 18:55:23 · 145 阅读 · 0 评论 -
【LintCode 简单】155. 二叉树的最小深度
1.问题描述:给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的最短路径上的节点数量。2.样例:样例 1:输入: {}输出: 0样例 2:输入: {1,#,2,3}输出: 3 解释: 1 \ 2 / 3 它将被序列化为 {1,#,2,3}样例 3:输入: {1,2,3,#,#,4,5}输出: 2 解释: 1 / \ 2 3...原创 2020-08-12 18:16:47 · 99 阅读 · 0 评论 -
【LintCode 简单】141. 对x开根
1.问题描述:实现int sqrt(int x)函数,计算并返回x的平方根。2.样例:样例 1: 输入: 0 输出: 0样例 2: 输入: 3 输出: 1 样例解释: 返回对x开根号后向下取整的结果。样例 3: 输入: 4 输出: 23.代码:class Solution: """ @param x: An integer @return: The sqrt ...原创 2020-08-11 22:54:53 · 252 阅读 · 0 评论 -
【LintCode 简单】128. 哈希函数
1.问题描述:在数据结构中,哈希函数是用来将一个字符串(或任何其他类型)转化为小于哈希表大小且大于等于零的整数。一个好的哈希函数可以尽可能少地产生冲突。一种广泛使用的哈希函数算法是使用数值33,假设任何字符串都是基于33的一个大整数,比如:hashcode("abcd") = (ascii(a) * 333+ascii(b) * 332+ascii(c) *33 +ascii(d)) %HASH_SIZE = (97* 33...原创 2020-08-11 22:39:47 · 206 阅读 · 0 评论 -
【LintCode 简单】55. 比较字符串
1.问题描述:比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是大写字母2.样例:给出 A = "ABCD" B = "ACD",返回 true给出 A = "ABCD" B = "AABC", 返回 false3.代码:class Solution: """ @param A: A string @param B: A string @return: if string A contains all of t..原创 2020-08-10 22:31:56 · 124 阅读 · 0 评论 -
【LintCode 简单】53. 翻转字符串中的单词
1.问题描述:给定一个字符串,逐个翻转字符串中的每个单词。说明单词的构成:无空格字母构成一个单词,有些单词末尾会带有标点符号 输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括 如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个2.样例:样例 1: 输入: "the sky is blue" 输出: "blue is sky the" 样例解释: 返回逐字反转的字符串.样例 2: 输入: ...原创 2020-08-10 22:29:24 · 106 阅读 · 0 评论 -
【LintCode 简单】60. 搜索插入位置
1.问题描述:给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。你可以假设在数组中无重复元素。2.样例:[1,3,5,6],5 → 2[1,3,5,6],2 → 1[1,3,5,6], 7 → 4[1,3,5,6],0 → 03.代码:我实现的方法,有点复杂class Solution: """ @param A: an integer sorted array @para..原创 2020-08-10 22:26:04 · 116 阅读 · 0 评论 -
【LintCode 简单】39. 恢复旋转排序数组
1.问题描述:给定一个旋转排序数组,在原地恢复其排序。(升序)2.样例:Example1:[4, 5, 1, 2, 3] -> [1, 2, 3, 4, 5]Example2:[6,8,9,1,2] -> [1,2,6,8,9]3.代码:class Solution: """ @param nums: An integer array @return: nothing """ def recoverRotatedSor.原创 2020-08-09 15:18:46 · 124 阅读 · 0 评论 -
【LintCode 简单 】28. 搜索二维矩阵
1.问题描述:写出一个高效的算法来搜索m×n矩阵中的值。这个矩阵具有以下特性:每行中的整数从左到右是排序的。 每行的第一个数大于上一行的最后一个整数。2.样例:样例 1: 输入: [[5]],2 输出: false 样例解释: 没有包含,返回false。样例 2: 输入: [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]],3 输出: true...原创 2020-08-09 15:14:35 · 96 阅读 · 0 评论 -
【LintCode 简单】8. 旋转字符串
1. 问题描述:给定一个字符串(以字符数组的形式给出)和一个偏移量,根据偏移量原地旋转字符串(从左向右旋转)。2.样例:样例 1:输入: str="abcdefg", offset = 3输出: str = "efgabcd" 样例解释: 注意是原地旋转,即str旋转后为"efgabcd"样例 2:输入: str="abcdefg", offset = 0输出: str = "abcdefg" 样例解释: 注意是原地旋转,即str旋转后为"abcdefg...原创 2020-08-09 14:03:29 · 109 阅读 · 0 评论 -
【LintCode 简单】22. 列表扁平化
1.问题描述:给定一个列表,该列表中的每个元素要么是个列表,要么是整数。将其变成一个只包含整数的简单列表。2.样例:样例 1: 输入: [[1,1],2,[1,1]] 输出:[1,1,2,1,1] 样例解释: 将其变成一个只包含整数的简单列表。样例 2: 输入: [1,2,[1,2]] 输出:[1,2,1,2] 样例解释: 将其变成一个只包含整数的简单列表。 样例 3: 输入...原创 2020-08-09 13:58:38 · 329 阅读 · 0 评论 -
【LintCode 简单】41. 最大子数组
LintCode编程练习原创 2018-01-19 14:57:27 · 117 阅读 · 0 评论 -
【LintCode 简单】35. 翻转链表
LintCode编程练习原创 2018-01-19 15:01:08 · 148 阅读 · 0 评论 -
【LintCode 入门】466. 链表节点计数
LintCode编程练习原创 2018-01-15 13:46:31 · 685 阅读 · 0 评论 -
【LintCode 简单】44. 最小子数组
LintCode编程练习原创 2018-01-19 14:52:38 · 247 阅读 · 0 评论 -
【LintCode 简单】101. 删除排序数组中的重复数字 II
LintCode编程练习原创 2018-01-27 16:14:35 · 202 阅读 · 0 评论 -
【LintCode 简单】100. 删除排序数组中的重复数字
LintCode编程练习原创 2018-01-27 16:12:08 · 174 阅读 · 0 评论 -
【LintCode 简单】85. 在二叉查找树中插入节点
LintCode编程练习原创 2018-01-18 16:39:26 · 139 阅读 · 0 评论 -
【LintCode 简单】165. 合并两个排序链表
LintCode编程练习原创 2018-01-19 15:02:59 · 173 阅读 · 0 评论 -
【LintCode 简单】777. 完全平方数
LintCode编程练习原创 2018-01-28 20:26:26 · 260 阅读 · 0 评论 -
【LintCode 简单】111. 爬楼梯
LintCode编程练习原创 2018-01-28 21:09:52 · 282 阅读 · 0 评论 -
【LintCode 简单】173. 链表插入排序
LintCode编程练习原创 2018-01-28 22:17:55 · 187 阅读 · 0 评论 -
【LintCode 简单】112. 删除排序链表中的重复元素
LintCode编程练习原创 2018-01-20 15:11:46 · 209 阅读 · 0 评论