自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 709. 转换成小写字母----------LeetCode(java实现)

解题思路:遍历字符串,遇到大写字母则转化为小写字母。class Solution { public String toLowerCase(String str) { int len=str.length(); String res=""; for(int i=0;i<len;++i){ if(str.c...

2019-12-31 17:11:13 71

原创 595.大的国家------LeetCode(java实现)

解题思路:用where作为查找条件,用or连接满足两个条件的查找select name,population,area from World where area > 3000000 or population > 25000000;

2019-12-31 13:51:17 77

原创 182. 查找重复的电子邮箱--------LeetCode(Java实现)

解题思路:先将表按照Email分组,然后使用having找出Email计数大于1的select Email from Person group by Email having count(Email)>1

2019-12-31 09:10:20 353

原创 58. 最后一个单词的长度----LeetCode(java实现)

解题思路:1.题目要找的是最后一个单词的长度,所以可以从后向前遍历字符串,定义一个计数器res2.如果遇到大小写字母,则计数器加13.如果遇到空格,则表示一个单词的结束,这时需要根据res的值判断当前单词是否是我们要找的最后一个单词4.如果这时res>0则表示在此空格之前找到了最后一个单词,将res返回即可,反之,则继续向前寻找5.如果找到最后都没有大小写字母出现,则表示...

2019-12-30 21:39:11 144

原创 7. 整数反转----LeetCode(java实现)

解题思路:将每一位数字取出来组成新的数字,每取到一位数字,原来的数字就乘10,这里有个采坑点:新组成的数字必须定义成long类型。(1)原数字%10获得最低位数(2)原数字/10逐次取得原数字的其他位数字class Solution { public int reverse(int x) { int result=x; long sum=0...

2019-12-30 21:16:47 69

原创 1304. 和为零的N个唯一整数----LeetCode(java实现)

解题思路:这里要构建的是这样的数组:(1)数组长度是偶数时,假设数组长度是4,则输出数组是[-2,-1,1,2]。(2)数组长度是奇数时,假设数组长度是5,则输出数组是[-2,-1,0,1,2]。1>创建一个长度为n的数组,在创建的同时数组被初始化为02>无论是n是奇数还是偶数,我们只需要将数组分为两半,分别给两边赋值,未被再次赋值的数组,其值为0。对比待输出的结果...

2019-12-30 18:04:06 168

原创 237. 删除链表中的节点---LeetCode(java实现)

解题思路:首先要理解题目的意思:题目是说在已经找到要删除节点的情况下,让你实现删除的过程,所以具体的查找过程不需要我们实现。单链表包含两部分:一是当前节点的数值,二是指向下一个节点。传入的参数只有要删除的节点node,因此无法获取删除节点node的前一个节点pre,从而也就无法将前一个节点pre指向删除节点的下一个节点nex;所以只能将删除节点node的值和指针都改为下一个节点nex的值和...

2019-12-30 13:42:23 148

原创 1290.二进制链表转整数----LeetCode(java实现)

解题思路:分为两大步:(1)如何获得链表中的每个元素?首先获得头结点指向的元素,然后头结点指向下一个节点,获得当前节点的元素值,一直循环到尾结点便可以获得所有节点指向的数值。while(head!=null){int value=head,val;head=head.next;}(2)如何将从链表中获得的二进制数值转化为十进制数?101转化为10进制的过程:1->1;...

2019-12-30 12:06:23 253

原创 1266.访问所有点的最小时间---LeetCode(java实现)

解题思路:题目实际上是想求相邻两点之间的最短距离,由于只能沿水平、对角线或者竖直方向移动一个单位长度,所以两点间的最短距离实际上是两坐标差的最大值,即max(x1-x2,y1-y2)。class Solution { public int minTimeToVisitAllPoints(int[][] points) { int res=0; in...

2019-12-30 09:23:22 153

原创 859.亲密字符串----LeetCode(java实现)

解题思路:大的分类分为三种情形:(1)两个字符串长度不相等,结果肯定为false(2)两个字符串长度相等,但是字符串长度小于2,结果为false(3)字符串长度相等且其长度大于等于2,又分为以下几种情况:声明一个计数器变量cnt,两个记录索引位置的变量:index1和index2。遍历字符串,只要两个字符串中的字符不等,计数器就加1,index1记录字符串中第一次出现字符不等的...

2019-12-29 20:52:59 217

原创 193.有效电话号码----LeetCode

解题思路:题目考察的是正则表达式,有效的电话号码只有两种格式,这两种格式的只有前几位不一样,而后几位是一样的,因此,正则匹配可分为两部分(1)匹配两种格式中各自的前几位,中间以或运算符,即|连接(2)后几位是通用格式,可以直接匹配,不用各自考虑grep -P '^(\(\d{3}\) |\d{3}-)\d{3}-\d{4}$' file.txt说明:^(\(\d{3}\)...

2019-12-29 16:41:29 699

原创 665.非递减数列

解题思路:逆向思维:找返回结果为false的情况,分为两种(1)统计数组中递减的次数cnt,当cnt>1时,结果为false(2)cnt=1,同时记下当前递减数的索引index,当index<数组长度-2&&index>0时,比较两组数:nums[index]和nums[index+2]与nums[index-1]和nums[index+1]的大小,如...

2019-12-29 15:41:22 93 2

原创 905.按奇偶排序数组----LeetCode(Java实现)

解题思路:(1)创建一个与原数组同样大小的数组(2)准备一个计数器cnt,作为偶数的下标(从0开始计数);同时准备另一个计数器j,作为奇数的下标(从数组最大索引开始)(3)遍历原数组,如果是偶数,存到cnt指向的位置,同时cnt++;如果是奇数,存到j指向的位置,同时j--class Solution { public int[] sortArrayByParity(in...

2019-12-29 14:02:41 152

原创 344.反转字符串----LeetCode(java实现)

解题思路:(1)以O(1)的额外空间解决问题的意思是除了原数组以外,不要创建其他数组(2)通过分析可以发现:索引为0 的元素需要与数组最后一个元素减缓位置;索引为2 的元素需要与倒数第二个元素交换位置。。。。。。,因此可以借助遍历一半的方法将元素倒序输出class Solution { public void reverseString(char[] s) { ...

2019-12-28 22:45:28 160

原创 557.反转字符串中的单词III----LeetCode(java实现)

解题思路:分为三步:(1)先将字符串整个反转(2)将反转后得到的字符串以空格为分隔符进行分割(3)将分割后得到的字符数组倒序遍历,并在数组下标非0的地方加上空格,便得到结果字符串class Solution { public String reverseWords(String s) { StringBuilder builder=new StringBuil...

2019-12-28 22:14:05 116

原创 852.山脉数组的峰顶索引---LeetCode(java实现)

解题思路:思路很简单:就是遍历数组,找到一个数组索引,使得他前一个元素比他小,后一个元素比他大。不过这里需要注意:遍历的时候从索引1开始。class Solution { public int peakIndexInMountainArray(int[] A) { int len=A.length; int i=1; for(;...

2019-12-28 20:47:02 107

原创 561.数组拆分I---LeetCode(java实现)

解题思路:将2n的数组拆分成n对,使得每对中的最小值相加值最大,实际上就是想办法让尽可能大的值作为每对的最小值,所以首先想到了将原数组从小到大排序,然后再两两组队。class Solution { public int arrayPairSum(int[] nums) { Arrays.sort(nums); int sum=0; ...

2019-12-28 20:03:13 167

原创 1025.除数博弈----LeetCode(java实现)

解题思路:看到这道题首先想到的是不能用每次去求N的方法,这样就算做出来了也会超时,所以就要去找规律。1、N=1时,爱丽丝输;2、N=2时,爱丽丝赢;3、N=3时,爱丽丝输;4、N=4时,爱丽丝赢;5、N=5时,爱丽丝输;6、N=6时,爱丽丝赢;。。。。。。可以总结出:当N可以被2整除时,爱丽丝赢,反之,爱丽丝输。class Solution { p...

2019-12-28 17:07:29 184

原创 933.最近的请求次数---LeetCode(java实现)

解题思路:在说解题思路前,先说一下题目的意思(毕竟我刚开始并没有看懂题目是什么意思,还是看了别人的思路才知道原来是这个意思):每次给定一个时间常数t,判断截止到t为止,所有输入的数字中与t的时间间隔在【0,3000】范围内数字有多少个?思路:每个t存储在队列中,由于时间是递增的,所以队列中的数字也是递增的,从头开始遍历队列,剔除与当前的时间t差值大于3000的数字,最终返回队列的长度,就是...

2019-12-28 16:44:48 161

原创 292.Nim游戏---LeetCode(java实现)

解题思路:这道题首先考察反向思维,什么情况下我会输?其次考察推理或者说找规律。如果石子数是4的倍数,我必输,输出False,其他情况我必赢。class Solution { public boolean canWinNim(int n) { if(n%4==0){ return false; } return...

2019-12-28 11:10:27 168 1

原创 942.增减字符串匹配---LeetCode(java实现)

解题思路:这道题主要考察的是找规律,根据输出结果可以发现:依次遍历给定字符串,如果是“I”,则从最小值开始,每次遍历到“I”则依次加1;如果是“D”,则从最小值开始,每次遍历到“D”则依次减1。因为数组长度比字符串多1,最后别忘记把最后一个元素填充上。class Solution { public int[] diStringMatch(String S) { i...

2019-12-28 10:43:29 119

原创 1108.IP 地址无效化----LeetCode(java实现)

解题思路:题目其实在考验字符串分割,思路一:可以直接使用String中的字符串分割函数,split。思路二:直接遍历给定字符串,将.换成[.]。class Solution { public String defangIPaddr(String address) { StringBuilder builder=new StringBuilder(); ...

2019-12-27 14:38:05 106 1

原创 977.有序数组的平方----Leetcode(java实现)

解题思路:这道题考查的是排序算法,说到排序算法首先想到的是快速排序,所以此题的解法一可以采用手写快速排序实现。这里采用了java数组自带的排序算法:Arrays.sort();class Solution { public int[] sortedSquares(int[] A) { int len=A.length; int[] res=ne...

2019-12-26 22:56:01 156

原创 728.自除数----Leetcode(java实现)

解题思路:分为三种情况考虑:1、数字本身是0,则不是自除数2、数字本身只有一位,此时考虑正负的问题,即将数字取绝对值。只有一位数肯定是自除数。3、正常情况。首先考虑,数字中包含0,则此数字不是自除数。其他情况就是对数字各位取余获得各位数,看看是否可以整除数字,若不可被原数整除,则不是自余数,若各位数字都可被原数整除,则是自余数。class Solution { publi...

2019-12-26 21:21:56 229

原创 1281.整数的各位积和之差---LeetCode(java实现)

解题思路:1、依次对数字先取余再取整获得各位数字,将各数字求积、求和2、单独考虑数字为0的情况,直接返回0(加快算法执行效率)class Solution { public int subtractProductAndSum(int n) { int res; long multis=1; int sum=0; if...

2019-12-26 13:01:33 192

原创 771.宝石与石头(LeetCode)---java实现

算法思路:1、通过Hash表将J中的字符串分割,每个字符作为一个子字符串,以子字符串为键,索引作为值,映射成对应的键值对2、遍历S中的字符串,查找每个子字符串是否能在J对应的HashMap中找到非空值,找到一个则表示此字符在J中出现过,相应的计数器加1class Solution { public int numJewelsInStones(String J, String ...

2019-12-26 09:39:38 168

空空如也

空空如也

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

TA关注的人

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