自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 前一个数 - LintCode

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

2018-05-28 09:44:27 197

原创 最高频的K个单词 - LintCode

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

2018-05-23 22:35:02 1289

原创 最接近的三数之和 - LintCode

描述 给一个包含 n 个整数的数组 S, 找到和与给定整数 target 最接近的三元组,返回这三个数的和。只需要返回三元组之和,无需返回三元组本身样例 例如 S = [-1, 2, 1, -4] and target = 1. 和最接近 1 的三元组是 -1 + 2 + 1 = 2.挑战 O(n^2) 时间, O(1) 额外空间。思路 由于不需要返回三元组本身,可以对...

2018-05-22 09:15:11 221

原创 炸弹袭击 - LintCode

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

2018-05-21 09:42:19 683

原创 幸运数字8 - LintCode

描述 8是小九的幸运数字,小九想知道在1~n的数中有多少个数字含有8。1 <= n <= 1000000样例 给出 n = 20, 返回2。解释:只有8,18 含有8。给出 n = 100, 返回19。解释:有8,18,28,38,48,58,68,78,80,81,82,83,84,85,86,87,88,89,98。思路 判断数字n是否...

2018-05-18 15:37:38 1852

原创 推荐朋友 - LintCode

描述 给n个人的朋友名单,告诉你user,请找出user最可能认识的人。(他和user有最多的共同好友且他不是user的朋友)n <= 500。好友关系是相互的。(b若出现在a的好友名单中,a一定出现在b的好友名单中)每个人的好友关系不超过 m 条,m <= 3000。如果有两个人和user的共同好友数目一样,编号更小的那个认为是最可能认识的人。如果user和所有陌生...

2018-05-18 15:08:00 809

原创 拿硬币 - LintCode

描述 有n个硬币排成一排,每次要你从最左边或者最右侧拿出一个硬币。总共拿k次,写一个算法,使能拿到的硬币的和最大。1 <= k <= n <= 100000。硬币的价值不大于10000。样例 给出 list = [5,4,3,2,1], k = 2, 返回 9.解释:从左边开始连取两个硬币即可。给出 list = [5,4,3,2,1,6], k ...

2018-05-18 14:50:53 2192 1

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

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

2018-05-10 20:15:21 452

原创 字符串压缩 - LintCode

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

2018-05-09 10:33:24 865

原创 First Unique Character in a String - LintCode

描述 给出一个字符串,找出第一个只出现一次的字符。样例 对于 “abaccdeff”, ‘b’为第一个只出现一次的字符。思路 构建数组dic存放字符第一次出现的位置,从后向前遍历字符串,若元素值为-1表示之前没有出现过,更新元素的值。否则,如果元素值非负,说明之前已经出现过,将值置为-2,之后不再考虑。最终,在dic中寻找值非负且最小的位置,返回其代表的字符。#ifndef C2...

2018-05-09 10:26:33 206

原创 lower_bound - 降序

在非正升序数组中使用lower_bound 二分搜索算法lower_bound要求容器中的元素必须有序的,若为降序则comp必须使用>lower_bound(beg, end, val, greater<int>())返回一个迭代器,若val在序列中,则返回val第一次出现的的位置,否则返回第一个插入val不影响原序列顺序的位置。...

2018-05-07 16:48:16 2481

原创 前K大数 - LintCode

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

2018-05-07 16:35:53 200

原创 前K大数 II - LintCode

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

2018-05-07 16:19:34 165

原创 快速排序 - 从右边开始

先给出快速排序的代码void quickSort(vector<int> &nums, int left, int right){ if (left > right) return; int i = left, j = right, temp = nums[left]; while (i < j) { ...

2018-05-05 09:43:01 1207

原创 最大子数组之和为k - LintCode

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

2018-05-04 21:10:29 1602

原创 笛卡尔积 - LintCode

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

2018-05-04 20:45:49 631

原创 第k大元素 - LintCode

描述 在数组中找到第k大的元素 你可以交换数组中的元素的位置样例 给出数组 [9,3,2,4,8],第三大的元素是 4 给出数组 [1,2,3,4,5],第一大的元素是 5,第二大的元素是 4,第三大的元素是 3,以此类推挑战 要求时间复杂度为O(n),空间复杂度为O(1)思路 利用一次快速排序,可以将某个元素放置于最终的排序位置pos。求nums的第n大元素,也就是求排序...

2018-05-04 20:28:23 231

原创 会议室 - LintCode

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

2018-05-03 19:39:55 874

原创 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],[-1,-2,-3]]return 9.Explanation:the submatri...

2018-05-02 19:48:16 1013

原创 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 subsequence should be at least 2 . 注意事项1.The le...

2018-05-02 19:21:31 132

原创 有向图判环 - LintCode

请你判断一个 n 个点,m 条边的有向图是否存在环。参数为两个int数组,start[i]到end[i]有一条有向边。 注意事项2 <= n <= 10^51 <= m <= 4*10^51 <= start[i], end[i] <= n样例 给出 start = [1],end = [2], 返回”False”。解释:只有1-&...

2018-05-01 20:54:18 2885 1

原创 警察距离 - LintCode

给一个n x m的矩阵,里面的值1代表那个位置站了一个警察,-1代表是墙,0代表是空地。 现在请你输出一个n x m矩阵,输出每一个空地到离他最近的警察的距离。 注意事项给的n x m 的矩阵, n <= 200,m <= 200。保证每个空地都至少能走到一个警察。样例 给出 mat =[[0,-1,0],[0,1,1],[0,0,0]]返回[[...

2018-05-01 19:18:47 188

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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