
算法刷题班题目详解
算法详解
思域传媒
这个作者很懒,什么都没留下…
展开
-
题目目录
数组26 删除数组中的重复项27 删除等于val的元素80 删除排序数组中的重复项,使得每个元素最多出现两次238 求除自身以外数组元素的乘积原创 2020-01-31 20:27:53 · 393 阅读 · 0 评论 -
234 判断回文链表
【题目】【分析】把前半部分反转,然后与后半部分比较即可。【代码】/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solu...原创 2020-03-15 17:14:25 · 193 阅读 · 0 评论 -
19 只用一趟扫描,删除链表的倒数第n个节点
【题目】【分析】【代码】/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public Li...原创 2020-03-05 15:54:32 · 202 阅读 · 0 评论 -
203、83、82 删除链表的某些节点
【题目】【分析】cur用来遍历链表。当cur值不为val时,p.next = cur, p = p.next;【代码】/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { v...原创 2020-03-05 13:12:27 · 249 阅读 · 0 评论 -
242 判断两个字符串是不是异位词
【题目】【分析】异位词,有的地方又叫“变形词”。就是两个词,种类一样,每种的次数也一样。也就是,一个词由另一个词打乱一下顺序得到,就说这两个词是异位词。方法:统计一下字符种类及出现的次数,如果相同就是异位词。如何统计种类和出现次数呢?HashMap数组(唬人一点又叫字符哈希)【代码】class Solution { public boolean isAnagram(...原创 2020-03-02 23:12:05 · 475 阅读 · 0 评论 -
409 给定一些大小写字母,找出通过这些字母构成的最长的回文串
【题目】【分析】就是统计一下每种字母出现的次数。偶数的都能用上,奇数个数少用一个。最后还有多的可以再放在中间一个。就跟打扑克一样,别人不吃成对的。怎么办?先把成对的都出了,不是成对的就拆成成对的嘛。。。最后如果剩下个单的,也走了。。。怎么统计字符出现的次数?hashMap 2. 数组计数【代码】class Solution { public int longest...原创 2020-03-02 22:27:24 · 540 阅读 · 0 评论 -
680 给定一个字符串,最多删除一个字符,判断能够构成回文字符串
【题目】【分析】首尾双指针。当i、j指向的元素相等时,同时往前走。知道碰头或者不相等。当不相等时,判断去掉i或者去掉j之后的字符串是否为回文串。【代码】class Solution { public boolean validPalindrome(String s) { if(s.length()<3) return true; cha...原创 2020-03-02 22:05:51 · 2377 阅读 · 0 评论 -
125 给定一个字符串,只考虑字母和数字,验证它是否是回文串
【题目】【分析】首尾双指针。【代码】class Solution { public boolean isPalindrome(String s) { if(s==null || s.length()<=1) return true; int i=0,j=s.length()-1; while(i<j){ ...原创 2020-03-02 21:30:30 · 639 阅读 · 0 评论 -
796 判断字符串B是不是由A循环移位得到
【题目】【分析】【代码】class Solution { public boolean rotateString(String A, String B) { if(A.length()!=B.length()) return false; A = A+A; //这样好写 return A.contains(B); //不是...原创 2020-03-02 17:59:58 · 302 阅读 · 0 评论 -
215 数组中第k大的数
215 返回数组中第k大的数一、返回数组中第k大的数【题目】【方法一】排序,返回第k个数即可。代码:class Solution { public int findKthLargest(int[] nums, int k) { Arrays.sort(nums); return nums[nums.length-k]; }}【方...原创 2020-02-12 21:06:16 · 220 阅读 · 0 评论 -
十大经典排序算法
一、直接插入排序二、希尔排序三、冒泡排序四、快速排序五、简单选择排序六、堆排序七、归并排序八、基数排序九、计数排序十、桶排序一、直接插入排序【算法思想】【代码】public void insertSort(int[] nums){ int len = nums.length; //len=10 for(int i=1;i<len;i++){...原创 2020-02-08 17:20:32 · 470 阅读 · 0 评论 -
k sum
例题1. 1 两数之和 Easy例题2. 167 两数之和,输入的是有序数组 Easy例题3. 15 三数之和 Medium例题4. 16 最接近的三数之和 Medium例题5. 18 四数之和 Medium例题1. 1 两数之和 Easy例题2. 167 两数之和,输入的是有序数组 Easy例题3. 15 三数之和 Mediumclass Solution { publi...原创 2020-02-05 15:49:44 · 268 阅读 · 0 评论 -
217、219 判断数组中是否存在重复元素
例题1. 217 判断数组中是否存在重复元素 Easy例题2. 219 判断数组中是否存在重复元素II Easy例题1. 217 判断数组中是否存在重复元素 Easy例题2. 219 判断数组中是否存在重复元素II Easy【题目】【分析】【方法一:两重循环】对于每一个数,看看后面的k个数有没有重复的。代码:class Solution { public boole...原创 2020-02-03 15:08:54 · 196 阅读 · 0 评论 -
26、80 删除数组中的重复项
一、26 删除排序数组中的重复项【题目】class Solution { public int removeDuplicates(int[] nums) { int len = nums.length; if(len == 0) return 0; int i = 0; for(int j=1; j<len;){...原创 2020-01-31 20:51:14 · 140 阅读 · 0 评论