自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HxxxxxxU的博客

IT男一枚

  • 博客(17)
  • 收藏
  • 关注

原创 LintCode:100. 删除排序数组中的重复数字VS 101. 删除排序数组中的重复数字II

描述给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。样例给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]。分析:遍历数组,定义变量size=0,从nums[size]开始依次与nums中每一个元素比较,若相等,则比较后一个元素;若不等,则将size+1,将nums[s...

2018-06-30 15:18:42 181

原创 LintCode:134.LRU缓存策略

描述为最近最少使用(LRU)缓存策略设计一个数据结构,它应该支持以下操作:获取数据(get)和写入数据(set)。获取数据get(key):如果缓存中存在key,则获取其数据值(通常是正数),否则返回-1。写入数据set(key, value):如果key还没有在缓存中,则写入其数据值。当缓存达到上限,它应该在写入新数据之前删除最近最少使用的数据用来腾出空闲位置。分析可以定义一个双向链表来实现元素...

2018-06-29 20:21:36 394

原创 统计回文——网易2017内推笔试编程题

链接:https://www.nowcoder.com/questionTerminal/9d1559511b3849deaa71b576fa7009dc来源:牛客网“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字...

2018-06-29 17:30:41 283

原创 手写Spring MVC框架(包含Java注解的实现)

主要从以下几点入手 : 一、了解SpringMVC运行流程及九大组件 二、梳理自己的SpringMVC的设计思路 三、实现自己的SpringMVC框架了解SpringMVC运行流程及九大组件运行流程:1.用户发送请求->DispatcherServlet;用户向服务端发送请求,被Spring的前端控制器DispatcherServlet截获。2.DispatcherServlet->H...

2018-06-26 11:08:18 1147

原创 LintCode:44.最小子数组

题目:给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。分析:贪心算法,数组的每个元素都可以加或者不加,从第一个元素开始判断,包括第一个元素时和不包括第一个元素的情况取最小值。public int minSubArray(List<Integer> nums) { // write your code here int min=nums.get...

2018-06-23 13:50:51 304

原创 LintCode 104:Merge K Sorted Lists(合并K个排序链表)

题目:合并k个排序链表,并且返回合并后的排序链表。样例给出3个排序链表[2->4->null,null,-1->null],返回 -1->2->4->null分析:采用归并排序的思想。数组的数递归划分,一分二,二分四…直至最后一个数单独的成为一组,然后再进行归并划分采用的递归实现。即把K个链表一直对分直到最后一个链表为一组,然后进行递归两两归并,两两归并的操作即...

2018-06-22 13:17:57 191

原创 LintCode388:第k个排列

题目:给定 n 和 k,求123..n组成的排列中的第 k 个排列。分析:首先考虑能不能确定第k个排列是以哪个数字开头,以[1,2,3,4]的全排列为例,找第14个排列以1开头的排列总共有3!个,原因是第一个位置是1,剩下3个位置可以随便排列,有6个以2开头的排列总共有3!个,原因是第一个位置是2,剩下3个位置可以随便排列,有6个此时已经有12个排列所以剩下的两个排列即第14个排列一定在以3开头的...

2018-06-21 11:49:31 186

原创 分苹果——网易2017内推笔试编程题

链接:https://www.nowcoder.com/questionTerminal/a174820de48147d489f64103af152709?source=relative来源:牛客网n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平...

2018-06-20 10:36:59 608

原创 合唱团——网易2017内推笔试编程题

链接:https://www.nowcoder.com/questionTerminal/661c49118ca241909add3a11c96408c8来源:牛客网有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这k 个学生的能力值的乘积最大,你能返回最大的乘积吗? 分析:本题采用动态规划的思想。对该问...

2018-06-19 14:14:36 507

原创 LintCode:最长上升子序列、最长公共子序列、最长公共子串

问题1:最长上升子序列最长上升子序列的定义:最长上升子序列问题是在一个无序的给定序列中找到一个尽可能长的由低到高排列的子序列,这种子序列不一定是连续的或者唯一的分析:动态规划,dp[i]表示到nums[i]为止的最长上升子序列长度。dp[i]=max(dp[i],dp[j]+1),其中0<=j<i且nums[j]<nums[i]其中,dp[i]初始都设为1,因为自身也是一个上升子...

2018-06-14 11:09:20 264

原创 LintCode:64. 合并排序数组

题目:合并两个排序的整数数组A和B变成一个新的数组。你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素。分析:采用归并排序的方法,首先开辟一个额外空间,大小是两个数组之和,存放排序后的数组。也可以不使用额外空间,如果数组为一长一短且长的数组能容纳所有元素的话,可以从数组末尾开始遍历,进行归并排序。//额外的空间,从前往后遍历 public void mergeSor...

2018-06-13 09:59:58 391

原创 LintCode:433. 岛屿的个数

题目:给一个01矩阵,求不同的岛屿的个数。0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。分析:采用深度优先搜索的方法,对于位置(i,j)的数,若为1,则为岛屿,则对该位置进行深度优先遍历,使得其四周为1的置为0,并递归下去,类似于深度搜索。将该位置四周的为1的变为0的意思就是把它们看成与该位置为同一个岛屿,则再遍历的时候就不会计它们的数(如果原来为1,岛屿...

2018-06-12 20:03:55 652

原创 LintCode:701. 修剪二叉搜索树

题目:修建二叉树,使得树中所有的结点值在区间[a,b]之间。输入:输出:思路:关于二叉树的题,大部分都采用递归的方法来做。当root位于L和R之间时,递归的修剪其左右子树,并返回root。当root的值小于L,其左子树都小于L,故舍弃其左子树,递归的修剪其右子树,并返回修剪后的右子树。当root的值大于L,其右子树都大于L,故舍弃其右子树,递归的修剪其左子树,并返回修剪后的左子树。如果root的值...

2018-06-10 23:35:25 322

原创 LintCode: 78. 最长公共前缀(LCP)

题目:分析:直接两两进行比较,用res保存当前最长的公共前缀。public class Solution { /** * @param strs: A list of strings * @return: The longest common prefix */ public String longestCommonPrefix(String[] st...

2018-06-06 11:32:03 577

原创 LintCode:15. 全排列(不含重复元素)VS 16. 全排列(含重复元素)

题目:分析:采用深度优先搜索的递归方法,考虑一个个将元素放入排列中,递归求解,建立一个访问标志数组,记录已经访问过的数,递归终止的条件是排列的长度等于数组的长度时,递归结束。(需要记得回溯)public class Solution { /* * @param nums: A list of integers. * @return: A list of permutat...

2018-06-04 15:19:37 215

原创 LintCode:650. Find Leaves of Binary Tree

题目:分析:遍历二叉树,找到叶子结点后,将其加入到list中,然后置为null,这样可以一层层剥离开来。/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val)...

2018-06-04 10:20:39 274

原创 LintCode:30. 插入区间

题目:分析:在非重叠的区间中插入一个新的区间,可能还需要与原有的区间进行合并,因此要对给定的区间集合进行遍历,需要考虑两点:新插入的区间与原有区间不重叠,重叠的情况分为两种:第一种是新区间的start>原区间的end;第二种是新区间的end<原区间的start。这种情况直接将新区间插入到对应的位置即可。新插入的区间与原有区间重叠,可能存在多个重叠,所以需要更新区间的范围来包含所有重叠。...

2018-06-02 16:59:50 302

空空如也

空空如也

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

TA关注的人

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