自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 剑指14(有序数组中某元素出现的个数)

有序数组中某元素出现的个数(java)题目描述:统计一个数字在排序数组中出现的次数。样例:输入:nums[5,7,7,8,8,10],target = 8输出:2输入:nums[5,7,7,8,8,10],target = 6输出:0题解:因为数组是排序的,所以target元素位置一定是连续的。一:双指针,慢指针找到第一个target元素,就停在此处,快指针继续向前走,直到不是target的元素出现。两指针的差值就是target元素的个数。代码:public static int s

2020-08-21 19:49:09 321

原创 剑指13(将字符串转换为整数)

将字符串转换为整数(java)题目描述:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数;数值为0或者字符串不是一个合法的数值(第一个非空格字符不是一个有效整数字符、字符串为空、字符串仅包含空白字符)则返回0;要求数值范围在[-231,231-1],超出此范围的直接返回-231或231.样例:输入:“42”输出:42输入:" -42"输出:-42输入:“4293 with words”输出:4293输入:“words with 4293”输出:0输入:"-98

2020-08-14 10:00:20 148

原创 剑指12(第一个只出现一次的字符)

第一个只出现一次的字符(java)题目描述:在字符串s中找出第一个只出现一次的字符。如果没有,返回一个单空格。s只包含小写字母。样例:输入:s = “abaccdeff”输出:‘b’输入:s = “”输出:’ ’输入:s = “abbacdcdff”输出:’ ’题解:“只出现一次”说明与前有关与后有关,所以要掌握整个字符串的状态,可以把字符串中的字符存进哈希表,键为字符,值为出现的次数。出现的次数只有两种状态:一次或者多次。出现多次的就不是我们要的,可以以false代之;如此,出现一次

2020-08-13 11:23:04 116

原创 将整数n划分为k份

将整数n划分为k份(java)题目描述:给出2个整数n和k,如果将n分为k份,每份均不能为0,一共有多少种分法?注:仅顺序不同视为同一种分法。题解:我们发现k为2时最易计算,将任何数一分为二的分法有(n-1)种,排除顺序不同数字相同的情况就是(n-1)/2种。但是计算机整数相除忽略小数点后的数字所以可写为n/2;所以采用递归,我们把递归栈的底部放到k=2上。比如,k=3,要分成三份,我们就先把n分成两份,再把其中一份分成两份就变成三分了,以此类推。如此,写成了这个亚子:在这里插入代码片.

2020-08-03 21:21:08 3469

原创 剑指11(最小的k个数)

最小的k个数(java)题目描述:输入整数数组arrs,找出其中最小的k个数。限制:0<=k<=arr.length<=10000,0<=arr[i]<=10000样例:输入:arr=[3,2,1],k=2输出:[1,2]或[2,1]题解:解一:自己的笨方法,利用选择排序只排序处前k个元素,并把这k个元素放在结果数组中。代码:public static int[] getLeastNumbers(int[] arrs, int k) { //数组中最小的k个

2020-06-24 15:58:03 75

原创 LeetCode简单题19(最后一个单词的长度)

最后一个单词的长度(java)题目描述:给定一个仅包含大小写字母和空格’ '的字符串s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,则返回0.说明:一个单词是指仅由字母组成、不包含任何空格字符串的最大子字符串。样例:输入:“hello world”输出:5输入:"hello world "输出:5题解:看到...

2020-05-07 21:03:10 122

原创 剑指10(顺时针打印矩阵)

顺时针打印矩阵(java)题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。样例:输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]题解:设置边界条件,就像推箱子,推不动了就换方向,按照向右->向下->向左->向上的循环 。l,t,r,b分别代表左,上,右,下的边界。具体过程如图解...

2020-04-30 10:49:51 89

原创 剑指9(调整数组顺序使奇数位于偶数前面)

调整数组顺序使奇数位于偶数前面(java)题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。1<=nums.length<=500001<=nums[i]<=10000样例:输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4]也是正确答案之一。题解:...

2020-04-28 13:29:27 70

原创 剑指8(青蛙跳台阶问题)

青蛙跳台阶问题(java)题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级台阶总共有多少种跳法?(答案需要取模1e9+7)示例:输入:n=2输出:2输入:n=7输出:21题解:算出前几项f(1)=1,f(2)=2,f(3)=3,f(4)=5,f(5)=8,f(6)=13…可以看出规律,当n>2时,f(n)=f(n-1)+f(n-...

2020-04-25 15:36:01 81

原创 剑指7(数组中出现次数超过一半的数字)

数组中出现次数超过一半的数字(java三种解法)题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。题解:解一:利用额外空间。创建一个map函数记录数组中每个元素和它出现的次数。代码:public static int majorityElement(int[] nums) { //哈希表法 Hash...

2020-04-19 16:26:09 77

原创 剑指6(链表中倒数第k个节点)

链表中倒数第k个节点(java)题目描述:输入一个链表,输出该链表中到数第k个节点。样例:给定一个链表:1->2->3->4->5,和k = 2返回链表:4->5题解:双指针,两个指针间保持相隔k个节点,同时向后移动,这样,当前一个指针遍历到链表结尾时,后一个指针到链表结尾的距离刚好是k,也就是倒数第k个。也相当于一个长度为k的窗口,在链表上滑动代码...

2020-04-16 11:42:10 60

原创 剑指5(旋转数组的最小数字)

旋转数组的最小数字(java)题目描述:把一个数组最开的的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增(非严格)排序的数组的一个旋转,输出旋转数组的最小元素。跟第一个错误的版本题目类似。样例:输入:[3,4,5,1,2]输出:1输入:[2,2,2,0,1]输出:0代码://旋转数组的最小数字 public static int minArray(int[] nu...

2020-04-15 22:29:56 73

原创 剑指3(删除链表节点),4(打印1到最大的n位数)

删除链表节点(java)打印从1到最大的n位数(java)题目描述:输入数字n,按顺序打印出从1到最大的n位十进制数,用返回一个整数列表来代替打印,且n为正整数题解:先找到最大的n位数是什么,可用Math的pow(x,y)方法(返回x的y次幂),再循环打印。代码:...

2020-04-14 21:43:35 82

原创 LeetCode简单题18(最大子序和)

最大子序和(java)题目描述:给定一个数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。样例:输入:[-2,1,-3,4,-1,2,1,-5,4]输出:6说明:连续子数组[4,-1,2,1]的和最大,为6题解:一个比较好理解的:贪心算法,一次遍历,遍历过程中维持每一次的最大子序和,遍历结束时就是全局的最大子序和。代码://最大子序和 p...

2020-04-13 22:05:25 85

原创 经典查找算法总结(上)

查找算法们(java) 顺序查找 二分查找 插值查找 斐波那契查找 数表查找 ...

2020-04-12 22:54:08 326

原创 移动研发岗一面面经

4月11日上午10:00–10:40百度移动研发岗一面,视频面试,第一次,很紧张小哥哥人很好,该温柔温柔,该挂还得挂。流程:1.自我介绍2.说一下java内存分布,垃圾回收机制3.了解GC吗4.Android四大组件5.activity四种启动模式,内容讲一下6.activity生命周期7.假如APP切到后台了,activity是什么状态?如果task栈溢出,内存阻塞,会发生什...

2020-04-12 14:17:06 581

原创 剑指2(反转单链表)

反转单链表 (java)题目描述:反转一个单链表样例:输入:1->2->3->4->5->null输出:5->4->3->2->1->null题解:**方法一:**迭代(双指针)设置两个相邻指针,一个在前,一个在后,进行反转反转完成后,两个指针同时后移一位继续反转遍历一遍就可全部反转完成代码:public stat...

2020-04-12 13:16:50 94

原创 LeetCode简单题17(从尾到头打印链表)

从尾到头打印链表(java)题目描述:输入一个链表的头结点,从尾到头反过来返回每个节点的值(用数组返回)。限制:0<=链表长度<=10000样例:输入:head = [1,3,2]输出:[2,3,1]题解:用一个ArrayList数组存放链表每个节点对应的值,再把ArrayList数组反转存放在int数组里。代码:/** * Definition for sing...

2020-04-09 21:42:24 69

原创 剑指1(二维数组中的查找)

二维数组中的查找(java)题目描述:在一个n*m的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。限制:0 <= n <= 1000;0 <= m <= 1000样例:现有矩阵matrix如下:{ {1, 4, 7, 11, 15}, ...

2020-04-08 23:48:47 75

原创 LeetCode简单题16(外观数列)

外观数列(java)题目描述:外观数列是一个整数数列,从数字1开始,序列中的每一项都是对前一项的描述。前五项如下:1112112111112211被读作“one1”,故第二项:1111被读作“two1”,故第三项:2121被读作“one2one1”,故第四项:1211…给定一个正整数n(1<=n<=30),输出外观数列的第n项。样例:输入:1输出:“1...

2020-04-07 15:47:51 96

原创 LeetCode简单题15(删除重复元素)

删除重复元素(java)题目描述:给你一个数组nums和一个值val,你需要在原地移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)的空间复杂度并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。样例:给定nums = [3,2,2,3],val = 3函数应该返回新的长度2,病区nums中的前两个元素均为...

2020-04-06 23:01:16 197

原创 LeetCode简单题14(合并连两个排序链表)

合并连两个排序链表(java)题目描述:将两个升序链表合并为一个新的链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。样例:输入:1->2->4 1->3->4输出:1->1->2->3->4->4题解:这种方法我称之为穿针引线,定义一个节点dome给新链表一个开头。维护一个指针head相当于针,然后把两个链表连接起...

2020-04-06 15:43:55 99

原创 LeetCode简单题13(实现strStr())

实现strStr() (java)题目描述:实现strStr()函数,给定一个haystack字符串 和一个needle字符串,在haystack字符串中找出needle字符串出现的第一个位置(从0开始)。如果不存在,则返回-1.*说明:*当needle是空字符串时,我们应当返回0.这与c语言的strStr()以及java的indexOf()定义相符。样例:输入:haystack = “...

2020-04-05 23:31:12 164

原创 LeetCode中等题1(无重复字符的最长子串)

无重复字符的最长子串(java)题目描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。样例:输入:“abcabcbb”输出:3*说明:*最长子串是"abc"长度为3输入:“bbbb”输出:1*说明:*最长子串是"b"长度为1输入:“pwwkew”输出:3*说明:*最长子串是"wke"长度为3题解:使用滑动窗口,窗口中就是动态的最长子串。用start和en...

2020-04-04 14:38:35 62

原创 LeetCode简单题12(删除排序数组中的重复数)

删除排序数组中的重复数(java)题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组,并在使用O(1)额外空间的条件下完成。示例:给定数组 nums = [1,1,2]函数应该返回新的长度2,并原数组的前两个元素被修改为1,2.不需要考虑数组中超出新长度后面的元素。题解:双指...

2020-04-03 11:30:11 93

原创 LeetCode简单题11(第一个错误的版本)

第一个错误的版本(java)题目描述:假如你是产品经理,带领团队开发一个产品,但是这个产品的最新一版没有通过质量检测,现在要找出是从哪一版开始出错。因为每一版都是在上一版的基础上进行的,所以,某一版出错了他之后的版本就都出错了。已经实现了一个接口,可用它判断版本是否出错。样例:输入版本数5和开始出错的版本号4,调用 isBadVersion(3) -> false调用 isBa...

2020-04-02 12:38:56 84

原创 LeetCode简单题10(搜索插入位置)

搜索插入位置(java)题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。可假设数组中无重复元素。样例:输入:[1,3,5] 3输出:1输入:[1,4] 3输出:1输入:[1] 1输出:0题解:看起来,因为是排好序的,遍历一遍就可以找出被插入的位置。。可是写出来发现,遍历只能解决一般问...

2020-04-01 21:09:16 99

原创 美团斗鱼百度笔试概录

3月26日,美团点评笔试(测开岗)人生第一次的笔试,本来19号就要参加的,摄像头一直调不出来只好放弃。之后看了看那次的试题,太太太难了,暗喜,得亏我没参加不然肯定被虐的灰飞烟灭。如愿被顺延到下一批26号,提前几天捣鼓了电脑终于摄像头给面子让我露脸儿了,然后乖乖等着被宰。终于日子到了,还是五道编程题。大概过了一遍,还比上次简单点,想着我至少能暴力解出来一道的,结果六十分钟过去了,一百分钟过去了,...

2020-03-31 15:17:33 347

原创 LeetCode简单题9(有效的括号)

有效的括号(java)题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相应的右括号闭合;左括号必须以正确的顺序闭合;空字符串可视作有效字符串;样例:输入:"()"输出:true输入:"({})[]"输出:true输入:"{([)}]"输出:false题解:此题用栈结构最合适,遇见左括...

2020-03-31 12:12:02 64

原创 LeetCode简单题8(最长公共前缀)

寻找字符串数组中的最长公共前缀(java)题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。题解:在保证数组长度不为零的情况下,以strs[0]为基础寻找其他字符串与strs[0]的公共前缀.定义一个变量result存储最长公共前缀,一开始假设最长公共前缀就是strs[0],随着循环比较,result随着已遍历的字符串的公共前缀而变化,最后...

2020-03-30 16:26:11 76

原创 LeetCode简单题7(罗马数字转整数)

罗马数字转整数(java)题目描述:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。他们对应的整数数值: I-1 ,V-5 ,X-10 ,L-50 ,C-100 ,D-500 ,M-1000。例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中...

2020-03-30 11:54:25 148

原创 LeetCode简单题6(判断回文数)

回文数(java)题目描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。进阶:能不用转换成字符串的方式解决吗?样例:输入:12321输出:true输入:-1221输出:false输入:10输出:false题解:解一:使用了转换成字符串的方法,首先负数和尾数带零的整数都不是回文数,先判断排除。再处理其他的情况,转换为字符串循环前半...

2020-03-29 11:24:14 108

原创 LeetCode简单题5(买卖股票最佳时机)

买卖股票的最佳时机题目描述:样例:题解:都用了动态规划,保留最大利润*解一:*笨方法代码:public int maxProfit(int[] prices) { int max = 0; for(int i=0 ; i<prices.length ; i++){ for(int j=i+1 ; j<prices.l...

2020-03-28 16:50:02 67

原创 LeetCode简单题4(只出现一次的数)

只出现一次的数字题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。*说明:*你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?样例:输入:[2,2,1]输出:1输入:[4,1,2,1,2]输出:4输入:[1]输出:1题解:解一:(我自己的笨方法)先排序,让相同的数两两相邻,再判断,如果没有相邻的数...

2020-03-27 10:23:24 68

原创 LeetCode简单题3(寻找重复数)

找出数组中重复的数题目描述:在一个长度为n的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。(限制2<=n<=100000)请找出数组中任意一个重复的数字.样例:输入:[2,3,1,0,2,5,3]输出:2或3题解:根据题中信息数组长度为n且数字都在0~n-1范围,可以知道不重复的数字...

2020-03-26 17:47:12 82

原创 LeetCode简单题2(整数反转)

整数反转(java)题目描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。样例:输入:x=123输出:x=321输入:x=-123输出:x=-321题解:首先想到了StringBbuffer类型...

2020-03-26 15:36:34 76

原创 LeetCode简单题1(两数之和)

LeetCode两数之和II(java)题目描述:给定一个已经按升序排列的有效数组,找到两个数是的他们的和等于目标数,函数应该返回这两个下标值index1,index2。样例:输入:numbers=[2,7,11,15],target=9输出:[1,2]题解:双指针解法因为输入的数组是排好序的,可以利用它的顺序做文章,两数相加先从最小的数(left)和最大的数相加开始(right)...

2020-03-26 12:23:37 112

空空如也

空空如也

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

TA关注的人

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