前一个数 - LintCode

描述 给一个数组,对于每一个元素,找出它之前第一个比它小的元素的值。如果没有,则输出它本身。 输入的数组长度为n,n <= 100000。 元素的大小为x,x <= 1000000。 样例 给出 list = [2,3,6,1,5,5],返回 ...

2018-05-28 09:44:27

阅读数:37

评论数:0

最高频的K个单词 - LintCode

描述 给一个单词列表,求出这个列表中出现频次最高的K个单词。 你需要按照单词的词频排序后输出,越高频的词排在越前面。如果两个单词出现的次数相同,则词典序小的排在前面。 样例 给出单词列表: [ "yes", "lint&...

2018-05-23 22:35:02

阅读数:134

评论数:0

最接近的三数之和 - LintCode

描述 给一个包含 n 个整数的数组 S, 找到和与给定整数 target 最接近的三元组,返回这三个数的和。 只需要返回三元组之和,无需返回三元组本身 样例 例如 S = [-1, 2, 1, -4] and target = 1. 和最接近 1 的三元组是 -1 + 2 + 1 = ...

2018-05-22 09:15:11

阅读数:53

评论数:0

炸弹袭击 - LintCode

描述 给一个二维矩阵, 每一个格子都可能是一堵墙 W, 一个敌人 E 或者空 0 (数字 ‘0’), 返回你可以用一个炸弹杀死的最大敌人数. 炸弹会杀死所有在同一行和同一列没有墙阻隔的敌人, 因为墙比较坚固难以摧毁. 你只能在空的地方放置炸弹. 样例 给一个矩阵: 0 E 0 0...

2018-05-21 09:42:19

阅读数:231

评论数:0

幸运数字8 - LintCode

描述 8是小九的幸运数字,小九想知道在1~n的数中有多少个数字含有8。 1 <= n <= 1000000 样例 给出 n = 20, 返回2。 解释: 只有8,18 含有8。 给出 n = 100, 返回19。 解释: 有8,...

2018-05-18 15:37:38

阅读数:131

评论数:0

推荐朋友 - LintCode

描述 给n个人的朋友名单,告诉你user,请找出user最可能认识的人。(他和user有最多的共同好友且他不是user的朋友) n <= 500。 好友关系是相互的。(b若出现在a的好友名单中,a一定出现在b的好友名单中) 每个人的好友关系不超过 m 条,m &...

2018-05-18 15:08:00

阅读数:92

评论数:0

拿硬币 - LintCode

描述 有n个硬币排成一排,每次要你从最左边或者最右侧拿出一个硬币。总共拿k次,写一个算法,使能拿到的硬币的和最大。 1 <= k <= n <= 100000。 硬币的价值不大于10000。 样例 给出 list = [...

2018-05-18 14:50:53

阅读数:137

评论数:0

最常使用的K个单词II - LintCode

描述 在实时数据流中找到最常使用的k个单词. 实现TopK类中的三个方法: TopK(k), 构造方法 add(word), 增加一个新单词 topk(), 得到当前最常使用的k个单词. 如果两个单词有相同的使用频率, 按字母排序. 样例 TopK(2) add(&qu...

2018-05-10 20:15:21

阅读数:78

评论数:0

字符串压缩 - LintCode

描述 设计一种方法,通过给重复字符计数来进行基本的字符串压缩。 例如,字符串 aabcccccaaa 可压缩为 a2b1c5a3 。而如果压缩后的字符数不小于原始的字符数,则返回原始的字符串。 可以假设字符串仅包括a-z的字母。 样例 str=aabcccccaaa 返回 a2b1c5a...

2018-05-09 10:33:24

阅读数:169

评论数:0

First Unique Character in a String - LintCode

描述 给出一个字符串,找出第一个只出现一次的字符。 样例 对于 “abaccdeff”, ‘b’为第一个只出现一次的字符。 思路 构建数组dic存放字符第一次出现的位置,从后向前遍历字符串,若元素值为-1表示之前没有出现过,更新元素的值。否则,如果元素值非负,说明之前已经出现过,将值置为...

2018-05-09 10:26:33

阅读数:44

评论数:0

lower_bound - 降序

在非正升序数组中使用lower_bound 二分搜索算法lower_bound要求容器中的元素必须有序的,若为降序则comp必须使用> lower_bound(beg, end, val, greater<int>()) ...

2018-05-07 16:48:16

阅读数:285

评论数:0

前K大数 - LintCode

在一个数组中找到前K大的数 样例 给出 [3,10,1000,-99,4,100], k = 3. 返回 [1000, 100, 10] 思路 构建最小堆que。遍历数组nums,对于元素c,若此时que的大小小于k,直接添加c;否则,比较c和que堆顶的大小,若c较大,为保证前k个最大...

2018-05-07 16:35:53

阅读数:30

评论数:0

前K大数 II - LintCode

描述 实现一个数据结构,提供下面两个接口 1.add(number) 添加一个元素 2.topk() 返回前K大的数 样例 s = new Solution(3); >> create a new data structure. s.add...

2018-05-07 16:19:34

阅读数:26

评论数:0

快速排序 - 从右边开始

先给出快速排序的代码 void quickSort(vector<int> &nums, int left, int right) { if (left > right) ret...

2018-05-05 09:43:01

阅读数:267

评论数:0

最大子数组之和为k - LintCode

给一个数组nums和目标值k,找到数组中最长的子数组,使其中的元素和为k。如果没有,则返回0。 注意事项 数组之和保证在32位有符号整型数的范围内 样例 给出数组 nums = [1, -1, 5, -2, 3],k = 3,返回4 解析: 子数组[1, -1, 5, -2]的和...

2018-05-04 21:10:29

阅读数:117

评论数:0

笛卡尔积 - LintCode

我们采用二维数组setList[][]表示集合数组,其中setList[i]中的每个元素都为整数,且不相同。求集合setList[0],setList[1],…,setList[setList.length - 1]的笛卡尔积。 一般地,集合A和集合B的笛卡尔积A×B = {(x,y)|x∈A∧...

2018-05-04 20:45:49

阅读数:77

评论数:0

第k大元素 - LintCode

描述 在数组中找到第k大的元素 你可以交换数组中的元素的位置 样例 给出数组 [9,3,2,4,8],第三大的元素是 4 给出数组 [1,2,3,4,5],第一大的元素是 5,第二大的元素是 4,第三大的元素是 3,以此类推 挑战 要求时间复杂度为O(n),空间复杂度为O(1) 思...

2018-05-04 20:28:23

阅读数:40

评论数:0

会议室 - LintCode

给定一系列的会议时间间隔,包括起始和结束时间[[s1,e1],[s2,e2],…(si < ei),确定一个人是否可以参加所有会议。 样例 给定区间=[[0,30],[5,10],[15,20]],返回false。 思路 先对所有的会议时间进行排序,对于i,当si &...

2018-05-03 19:39:55

阅读数:76

评论数:0

Maximum Submatrix - LintCode

Given an n x n matrix of positive and negative integers, find the submatrix with the largest possible sum. 样例 Given matrix = [ [1,3,-1], [2,3,-2...

2018-05-02 19:48:16

阅读数:213

评论数:0

Increasing Subsequences -LintCode

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 s...

2018-05-02 19:21:31

阅读数:31

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭