自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Lintcode:1290. Patching Array

描述 Given a sorted positive integer array nums and an integer n, add/patch elements to the array such that any number in range [1, n] inclusive can be formed by the sum of some elements in the array. ...

2018-10-11 09:36:09 118

原创 Lintcode:182. 删除数字

描述 给出一个字符串 A, 表示一个 n 位正整数, 删除其中 k 位数字, 使得剩余的数字仍然按照原来的顺序排列产生一个新的正整数。 找到删除 k 个数字之后的最小正整数。 N <= 240, k <= N 样例 给出一个字符串代表的正整数 A 和一个整数 k, 其中 A = 178542, k = 4 返回一个字符串 "12" 自己思路:采取的贪心策略如果前一个数大于...

2018-10-11 09:32:30 378

原创 Lintcode :45. 最大子数组差

描述 给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大。 返回这个最大的差值。 子数组最少包含一个数 样例 给出数组[1, 2, -3, 1],返回 6 挑战 时间复杂度为O(n),空间复杂度为O(n) 思路:与上一题最大子数组II类似,只是要分情况找到sum(A)最大,sum(B)最小和sum(A)最小,sum(B)...

2018-10-11 09:27:49 214

原创 Lintcode: 42. 最大子数组 II

描述 给定一个整数数组,找出两个 不重叠 子数组使得它们的和最大。 每个子数组的数字在数组中的位置应该是连续的。 返回最大的和。 样例 给出数组 [1, 3, -1, 2, -1, 2] 这两个子数组分别为 [1, 3] 和 [2, -1, 2] 或者 [1, 3, -1, 2] 和 [2],它们的最大和都是 7 挑战 要求时间复杂度为 O(n) dalao思路:left数组表示0-i...

2018-10-11 09:25:01 167

原创 Lintcode : 187 加油站

描述 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i],并且从第_i_个加油站前往第_i_+1个加油站需要消耗汽油cost[i]。 你有一辆油箱容量无限大的汽车,现在要从某一个加油站出发绕环路一周,一开始油箱为空。 求可环绕环路一周时出发的加油站的编号,若不存在环绕一周的方案,则返回-1。 自己思路:采取的贪心策略就是看curGas,如果汽油可以一直累计>=0 那...

2018-10-11 09:19:22 231

转载 Lintcode :47. Majority Element II

描述 给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的三分之一。 dalao思路是,如果出现3个不一样的数,就抵消掉。记录两个candidate和每个candidate分别的出现次数。如果遍历到的数和两个candidate都不等,就count都减1。最后可能会剩下两个candidate,再遍历一次整个数组验证一下谁是主元素。     public int maj...

2018-10-11 09:10:01 102

转载 Lintcode : 743. 单调递增的数字

描述 给一非负整数 N, 找到小于等于 N 的最大的 单调递增数. (回想一下, 当且仅当每对相邻的数字 x 和 y 满足 x <= y 时, 这个整数才是单调递增数) 自己思路:自己写的比较丑陋,就不贴出来了,其实就是把所有情况判断出来,然后挑选符合条件的 dalao思路:要找到从后往前遍历的最后一个值升高的位置,让前一位减1,并把当前位以及后面的所有位都变成9,就可以得到最大的单调...

2018-10-11 09:07:11 306

原创 Lintcode : 196. Missing Number

给出一个包含 0 .. N 中 N 个数的序列,找出0 .. N 中没有出现在序列中的那个数。 自己的思路: public int findMissing(int[] nums) { int missingNum = 0; int sum = (nums.length+1) * (nums.length + 0)/2; for (int i = 0; i < n...

2018-10-10 21:44:02 112

原创 Lintcode 117. 跳跃游戏 II

给出一个非负整数数组,你最初定位在数组的第一个位置。 数组中的每个元素代表你在那个位置可以跳跃的最大长度。    你的目标是使用最少的跳跃次数到达数组的最后一个位置。 public int jump(int[] A) { int count = 0; int maxPos = 0; int lastMaxPos = -1; for (int i = 0; ...

2018-10-10 21:43:54 121

转载 Lintcode 84. 落单的数 III

给出2*n + 2个的数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字。 dalao解法: public List<Integer> singleNumberIII(int[] A) { // write your code here //https://blog.csdn.net/wutingyehe/article/details/5108530...

2018-10-07 11:40:07 184

原创 Lintcode : 116. 跳跃游戏

给出一个非负整数数组,你最初定位在数组的第一个位置。    数组中的每个元素代表你在那个位置可以跳跃的最大长度。     判断你是否能到达数组的最后一个位置。 public boolean canJump(int[] A) { // write your code here if (A[0] == 0 && A.length != 1) re...

2018-10-07 11:38:09 175

原创 Lintcode 791. Merge Number

给出n个数,现在要将这n个数合并成一个数,每次只能选择两个数a,b合并,每次合并需要消耗a+b的能量,输出将这n个数合并成一个数后消耗的最小能量。 public int mergeNumber(int[] numbers) { // Write your code here PriorityQueue<Integer> priorityQueue = new Pri...

2018-10-07 11:33:25 273

转载 Lintcode 83. 落单的数 II

给出3*n + 1 个的数字,除其中一个数字之外其他每个数字均出现三次,找到这个数字   public int singleNumberII(int[] A) { // write your code here //https://blog.csdn.net/ys_sarah/article/details/51025910 if(A == null || A.len...

2018-10-07 11:32:18 193

转载 Lintcode 67. 四键键盘

假设你有一个特殊的键盘,键盘上有如下键:键1:(A):在屏幕上打印一个'A'。键2:(Ctrl-A):选择整个屏幕。键3:(Ctrl-C):复制选择到缓冲区。键4:(Ctrl-V):在屏幕上已有的内容后面追加打印缓冲区的内容。现在,你只能按键盘上N次(使用以上四个键),找出你可以在屏幕上打印的“A”的最大数量 这道题钻牛角尖了,直接贴上大佬解法 dalao解法 public int max...

2018-10-07 11:30:59 509

原创 Lintcode 149. 买卖股票的最佳时机

假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。 public int maxProfit(int[] prices) { // write your code here if (prices.length == 0) return 0; int minP =...

2018-10-07 11:29:25 302

原创 Lintcode:884. 寻找排列

现在,给你一个由字符'D'和'I'构成的加密签名。'D'表示两个数字是递减关系,'I'表示两个数字是递增关系。我们的加密签名是由一个特殊的整数数组生成的。这个数组含有从1到n(n是加密签名的长度加1)的所有数字,并且每个数字只出现一次。举例来说,加密签名"DI"可以有数组[2,1,3]或者[3,1,2]生成,但是不能由数组[3,2,4]或者[2,1,3,4]生成。[3,2,4]和[2,1,3,4]...

2018-10-07 11:28:04 491

原创 Lintcode:919. 会议室 II

给定一系列的会议时间间隔intervals,包括起始和结束时间[[s1,e1],[s2,e2],...] (si < ei),找到所需的最小的会议室数量。 public int minMeetingRooms(List<Interval> intervals) { //List<Interval> list = List.of(new Interval(...

2018-10-07 11:25:06 461

原创 Lintcode 394. 硬币排成线

有 n 个硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。 请判定 第一个玩家 是输还是赢? 有点博弈论的意思 public boolean firstWillWin(int n) { // write your code here boolean[] dp = new boolean[n+1]; dp[...

2018-10-07 11:20:58 228

原创 Lintcode 1263. Is Subsequence

Given a string s and a string t, check if s is subsequence of t. You may assume that there is only lower case English letters in both s and t. t is potentially a very long (length ~= 500,000) string,...

2018-10-07 11:19:09 116

空空如也

空空如也

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

TA关注的人

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