自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试常见问题——操作系统

线程切换开销:1、内存同步(每个线程都用内存保存线程本地栈)2、上下文切换开销3、线程调度开销(需要占用操作系统资源)数据库事务隔离四个级别:隔离级别脏读(Dirty Read)不可重复读(NonRepeatable Read)幻读(Phantom Read)未提交读(Read uncommitted)可能

2017-08-10 10:45:42 422

原创 [LeetCode]643. Maximum Average Subarray I

https://leetcode.com/problems/maximum-average-subarray-i/#/description找出连续k个数平均值最大的那个平均值,注意注释!public class Solution { public double findMaxAverage(int[] nums, int k)

2017-07-25 17:41:44 399

原创 [LeetCode]638. Shopping Offers

https://leetcode.com/problems/shopping-offers/#/description给每种商品的价格、多组不同offer(每个offer内最后一个为价格,前面为每种商品在这个offer内的数量)、最终要买的个数要求exactly每个商品给定个数,所需要的最少钱遍历 + 回溯(递归)查看每个offer在当前needs下

2017-07-25 17:06:51 1763 1

原创 [LeetCode]636. Exclusive Time of Functions

https://leetcode.com/problems/exclusive-time-of-functions/#/description给一个log数组,表示非抢占式CPU调用function的情况。格式为id:start or end:time求每个func占用cpu的总时间用stack保存当前还在调用栈内的func的id,pre记录前序时间。遇到sta

2017-07-25 11:34:22 1545

原创 面试常见问题——架构

高可用-脑裂:两个机器都认为自己是主机,争抢资源。1、机器之间是物理线发送心跳,故可冗余备份;2、发现心跳线断开就锁住共享磁盘;3、仲裁机制,心跳线断开之后两个节点去ping参考ip,不通的放弃竞争并且重启释放共享资源ID生成器(趋势递增 + 高可用):1、VIP + keepalive作为id-service,底层双主库做写操作,数据库中保存当前id最大值

2017-07-17 15:43:19 403

原创 [LeetCode]632. Smallest Range

https://leetcode.com/problems/smallest-range/#/description给k个递增数组,找出一个最小范围,保证每个数组内至少有一个数字落在这个区间上类似归并排序思想——多维有序数组问题考虑mergeSort+pq思想pq内每次poll出当前最小值,max保存当前已访问的最大值,当前pq中的所有值一定在这

2017-07-13 11:02:51 1243

原创 [LeetCode]633. Sum of Square Numbers

https://leetcode.com/problems/sum-of-square-numbers/#/description给一个数字c,判断是否满足a2+ b2= c双指针,end最大为c开根号,beg最小为0.判断当前beg和end是否满足,然后相应移动beg或者endpublic class Solution { public boolean j

2017-07-11 10:59:42 941

原创 [LeetCode]630. Course Schedule III

https://leetcode.com/problems/course-schedule-iii/#/description每个课程c是长度为2的数组,c[0]为课程时间长度,c[1]为课程最晚截止时间先按照c[1]递增排序,遍历+贪心,用优先队列存已经访问过的c[0],如果当前时间超过了c[1],那就在优先队列内取出已有的最大c[0],最后返回优先队列的size

2017-07-11 10:41:50 1120

原创 [LeetCode]600. Non-negative Integers without Consecutive Ones

https://leetcode.com/problems/non-negative-integers-without-consecutive-ones/#/description给一个数n,找出有多少个不大于n的正数,且这些正数的二进制表示中不包含两个连续的1int转2进制string的API!!先用dp找出在k位二进制长度的数有多少满足条

2017-06-21 16:15:13 661

原创 [LeetCode]552. Student Attendance Record II

https://leetcode.com/problems/student-attendance-record-ii/#/descriptionA、P、L三种字母,其中A最多出现一次,L最多连续出现两次,问给定长度的字符串最多有多少种可能情况。结果取模1000000007。dp数组内分为六种情况: A0L0: A0L1: A0L2:

2017-06-20 14:22:41 786

原创 [LeetCode]576. Out of Boundary Paths

https://leetcode.com/problems/out-of-boundary-paths/#/description一个球在m * n的格子内,问多少种路径可以将它移出格子,最后的结果取模100000007DP,时间复杂度O(m * n * step),dp[i][j]表示位置(i, j)的当前路径种数,内层循环每次初始化一个新的二维数组,用来记录当次

2017-06-18 21:49:30 1352

原创 [LeetCode]624. Maximum Distance in Arrays

https://leetcode.com/problems/maximum-distance-in-arrays/#/description找出不同数组之间数字差值绝对值的最大值每个数组内部都是递增的因为不能算上同一数组内的首尾差值,所以每次先update res,然后更新当前已经获得的最小值和最大值public class So

2017-06-18 18:42:50 1320

原创 [LeetCode]611. Valid Triangle Number

https://leetcode.com/problems/valid-triangle-number/#/description找出满足组成三角形的三条边的个数组成三角形条件是两条较短的边的和大于第三条边public class Solution { public int triangleNumber(int[] nums) {

2017-06-17 21:18:32 1429

原创 [LeetCode]522. Longest Uncommon Subsequence II

https://leetcode.com/problems/longest-uncommon-subsequence-ii/#/description给一组字符串,找出最长不相同子序列(子序列是保证相对位置不变,子字符串是保证相邻且顺序不变),如果不存在就返回-1找出所有字符串的所有子序列,然后找里面满足要求的public class Solution {

2017-06-09 14:55:35 854

原创 [LeetCode]514. Freedom Trail

https://leetcode.com/problems/freedom-trail/#/description给一个环和一个key,判断环经多少步可以得到key,Input: ring = "godding", key = "gd"Output: 4Explanation: For the first key character 'g', since

2017-06-09 09:56:50 852

原创 [LeetCode]605. Can Place Flowers

https://leetcode.com/problems/can-place-flowers/#/description给一个数组,只包含01,1不能相邻,问能否插入n个1前后都为0时,就将当前位置置为1,表示当前位置可以插入public class Solution { public boolean canPlaceFlowers

2017-06-04 20:14:25 1511

原创 [LeetCode]565. Array Nesting

https://leetcode.com/problems/array-nesting/#/description给一个长度N的数组,里面元素为1 ~ N - 1找到最长的子数组S[K] = { A[K], A[A[K]], A[A[A[K]]], ... }.返回长度从多个起点到达同一个值之后的路径都是完全相同的,所以每个值最多

2017-05-29 15:58:12 1934

原创 [LeetCode]581. Shortest Unsorted Continuous Subarray

https://leetcode.com/problems/shortest-unsorted-continuous-subarray/#/description找到最短连续子数组,将这个子数组排序之后整个数组就有序了。求最短子数组长度从左往右遍历的话,如果有序的话当前位置一定是已经遍历到的最大值位置;从右往左遍历的话,当前位置一定是已经遍历到的最小值位置。如果不是就要

2017-05-19 14:42:50 2167

原创 [LeetCode]554. Brick Wall

https://leetcode.com/problems/brick-wall/#/description一个二维的墙,找出一条int位置的竖线,能穿过最少的墙反向思考,找出空隙最多的index,而不是找墙最少的index,否则有可能超内存public class Solution { public int leastBricks(List

2017-05-19 09:52:36 376

原创 [LintCode]Dices Sum

http://www.lintcode.com/en/problem/dices-sum/骰子投掷n次,求所有情况的和出现的概率二维数组dp[i][j]保存投掷i次得到和为j的概率,当前位置的概率为当前投掷1 ~ 6的情况下的前序概率和public class Solution { /** * @param n an i

2017-04-17 20:56:15 766

原创 [LintCode]k Sum

http://www.lintcode.com/en/problem/k-sum/求k个数和为target的总解数cache里面需要包三层!比较复杂!想清楚当前解需要多少状态决定!k & target & index都需要!!!当前位置两种选择,取或者不取public class Solution { /** * @param A: an

2017-04-16 21:38:14 237

原创 [LintCode]Wood Cut

http://www.lintcode.com/en/problem/wood-cut/给定一组树木,要求切割任意次之后相同长度的树木个数大于等于k,求最长切割后的长度。如果没有满足条件的情况就返回-1.二分最长树木,模板牛逼!考虑溢出public class Solution { /** *@param L: Given n piece

2017-04-16 20:06:59 352

原创 [LeetCode]460. LFU Cache

https://leetcode.com/problems/lfu-cache/#/description实现一个 Least Frequently Used (LFU),保存访问频率最高的capacity个数,如果要淘汰的可能有多个数频率相同,则淘汰最后一次访问时间最靠前的lintcode本题测试集不完整用bucket链表,每个bucket内保存同一个count的

2017-04-15 18:16:09 677

原创 [LintCode]Paint House II

http://www.lintcode.com/en/problem/paint-house-ii/#刷房子,每个房子刷每种颜色有一个cost[i][j],相邻两个房子不能刷同一种颜色,求最小cost要求时间复杂度O(NK)每次不需要前一状态的所有值,只需要保存前一状态之中最小和第二小的所涂的颜色。内层循环初始值设置为-1public class Solutio

2017-04-13 22:45:27 283

原创 [LintCode]Maximum Subarray III

http://www.lintcode.com/en/problem/maximum-subarray-iii/#找出k个不重叠的子数组,且和最大不太明显的DP,dp[i][j]为分成i个子数组,原数组长度为j。外层i遍历k,内层遍历从i ~ len。内层的local为当前分割之后的最后一个子数组的结尾位置为nums[j - 1]。当i == j的时候注意一下

2017-04-12 19:30:45 363

原创 新人入职环境配置

安装YCM1·首先要保证vim是最新版vim 8.0,,删除旧版本,编译安装新版本,在编译的时候要添加vim对于Python的支持2·安装Python-dev(支持Python2)或者Python3-dev(支持Python3)3·下载YCM并且安装4·安装cmake,按照guide操作(https://github.com/Valloric/YouCompleteMe#f

2017-04-12 11:37:41 423

原创 [LintCode]Convert Expression to Reverse Polish Notation

http://www.lintcode.com/en/problem/convert-expression-to-reverse-polish-notation/中缀表达式转成后缀表达式For the expression [3 - 4 + 5] (which denote by ["3", "-", "4", "+", "5"]), return [3 4 - 5 +] (whi

2017-04-11 15:02:56 331

原创 [LintCode]Copy Books

http://www.lintcode.com/en/problem/copy-books/有n本书,每本pages[i]页,一个工人一分钟复制一页,一共k个工人,每个工人分到的书号必须连续,求怎样分最后一个工人结束时间最早解析:这个其实就是抽象成问题,一个数组分为k个子数组,保证最大子数组和最小解法一:二分查找,解一定位于[max, sum]之间。

2017-04-11 13:51:56 934

原创 [LintCode]Binary Representation

http://www.lintcode.com/en/problem/binary-representation/讲一个可能含有小数的十进制String,转成二进制,如果不能转返回ERROR小数转换就是不断*2,如果乘后大于等于1,则当前位置为1,并且将值减一;否则当前位置为0public class Solution { /**

2017-04-11 10:18:12 266

原创 [LintCode]Print Numbers by Recursion

http://www.lintcode.com/en/problem/print-numbers-by-recursion/递归打印1 ~ n,n可能很大,要防止栈溢出public class Solution { /** * @param n: An integer. * return : An array st

2017-04-10 09:59:59 238

原创 [LintCode]Wiggle Sort

http://www.lintcode.com/en/problem/wiggle-sort/Given an unsorted array nums, reorder it in-place such thatnums[0] = nums[2] 从前往后遍历,将当前与前一位置比较不满足的交换即可。因为前一位置满足条件,所以当前位置交换过去之后肯定满足条件(

2017-04-09 22:28:07 237

原创 [LintCode]k Sum II

http://www.lintcode.com/en/problem/k-sum-ii/找出所有和为target且长度为k的子数组dfs,当前位置可以选也可以不选public class Solution { /** * @param A: an integer array. * @param k: a positive in

2017-04-09 22:17:33 241

原创 [LintCode]Swap Two Nodes in Linked List

http://www.lintcode.com/en/problem/swap-two-nodes-in-linked-list/#调换两个指定值的节点,不存在则不换,每个节点值唯一保证n1一定在n2之前,然后分两种情况调换:1、n1和n2相邻;2、不相邻public class Solution { /** * @param head

2017-04-09 17:11:49 242

原创 [LintCode]Submatrix Sum

http://www.lintcode.com/en/problem/submatrix-sum/#求子矩阵,和为0,要求时间复杂度O(n3)这道题和求数组中哪些元素和为0的解决方法一样,只是数组中求的是前i个元素和前j个元素和相等,则i-j元素和为0,而这里只是变成2维的而已。sum[i][j]表示matrix[0][0]到matrix[i-1][j-

2017-04-09 14:22:52 367

原创 [LintCode]Subarray Sum Closest

http://www.lintcode.com/en/problem/subarray-sum-closest/找到和最接近0的子数组前缀和,并且记录坐标,然后对于前缀和排序,找出相邻两个之差值最接近0的,差值肯定是正数,但是index前后位置关系不定,所以子数组的和可正可负public class Solution { /** * @param nu

2017-04-08 21:19:22 359

原创 [LintCode]Sort Colors II

http://www.lintcode.com/en/problem/sort-colors-ii/一共k种颜色,进行排序快排思想,找到fromColor到toColor的中点mid,将colors分为小于等于mid的和大于mid的两个部分,然后递归排序class Solution { public void sortColors2(int[] colo

2017-04-07 17:29:07 508

原创 [LintCode]Reorder array to construct the minimum number

http://www.lintcode.com/en/problem/reorder-array-to-construct-the-minimum-number/#给一个数组,按照最终拼成的最小数字排序ExampleGiven [3, 32, 321], there are 6 possible numbers can be constructed by

2017-04-05 22:40:17 532

原创 [LintCode]Number of Airplanes in the Sky

http://www.lintcode.com/en/problem/number-of-airplanes-in-the-sky/#给出起降时间,判断最多有多少飞机同时在天上解法一:HashMap,内外循环,内层循环当前飞机的start ~ end,将当前时刻的飞机数+1/** * Definition of Interval: * public cl

2017-04-04 12:19:49 339

原创 [LeetCode]209. Minimum Size Subarray Sum

https://leetcode.com/problems/minimum-size-subarray-sum/#/description找到子数组的和大于等于s的最短子数组非常简单,找到满足条件的边界条件,不断updatepublic class Solution { public int minSubArrayLen(int s, int[]

2017-04-04 10:36:02 458

原创 [LintCode]Minimum Adjustment Cost

http://www.lintcode.com/en/problem/minimum-adjustment-cost/#最小的cost使得相邻两个数的差值绝对值小于等于target,每一个数在[0, 100]之间背包问题,dp[i][j]保存长度为i的时候如果最后一位为j的时候的最小costk = [lower, upper] dp[i][j] =

2017-04-03 21:12:58 386

空空如也

空空如也

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

TA关注的人

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