- 博客(34)
- 收藏
- 关注
原创 LeetCode Hot 热题100 算法题 461.汉明距离-算法&测试-easy模式
LeetCode Hot 热题100 算法题 461.汉明距离-算法&测试-easy模式两个整数之间的汉明距离指的是这两个数字对应的二进制位不同位置的数目。给出两个整数x和y,计算它们之间的汉明距离。示例:x=1, y=4输出:2package leetcode.medium;//461.汉明距离public class Solution461 { public static void main(String[] args) { int x=12,y=9; S461H
2021-01-07 20:13:32 282
原创 LeetCode Hot 热题100 算法题 64.最小路径和-算法&测试-medium模式
LeetCode Hot 热题100 算法题 64.最小路径和-算法&测试-medium模式给定i一个包含非负整数的m×n网格grid,请找出一条从左上角到右下角的路径,是的路径上的数字总和为最小。说明:每次只能向下或向右移动一步。输入:grid = [ [1,3,1], [1,5,1], [4,2,1] ]输出:7 (1->3->1->1->1)动态规划package leetcode.medium;//64.最小路径和public class Solut
2021-01-05 23:03:03 245
原创 LeetCode Hot 热题100 算法题 62.不同路径-算法&测试-medium模式
LeetCode Hot 热题100 算法题 62.不同路径-算法&测试-medium模式一个机器人位于一个m×n网格的左上角(起始点标记为start),机器人每次只能向下或者向右移动一步,机器人视图到达网格的右下角(标记为finish)。问总共又多少条不同的路径?输入:m=3, n=7输出:28输入:m=3, n=2输出:3动态规划package leetcode.medium;//62.不同路径public class Solution062 { public stati
2021-01-05 22:58:47 260 1
原创 LeetCode Hot 热题100 算法题 142.环形链表II-算法&测试-medium模式
LeetCode Hot 热题100 算法题 142.环形链表II-算法&测试-medium模式给定一个链表,返回聊表开始入环到达第一个节点。如果链表无环则返回null。说明:不允许修改给定的链表。进阶:你是否可以使用O(1)空间解决此题?package leetcode.medium;import java.util.HashSet;import java.util.Set;//142.环形链表IIpublic class Solution142 { public stati
2021-01-04 22:32:20 183
原创 LeetCode Hot 热题100 算法题 148.排序链表-算法&测试-medium模式
LeetCode Hot 热题100 算法题 148.排序链表-算法&测试-medium模式给你链表的头结点head,请将其按升序排列并返回排序后的链表。进阶:你可以在O(nlogn)时间复杂度和常数级空间复杂度下,对链表进行排序吗?示例:head=[4,2,1,3]输出:[1,2,3,4]思路:归并排序package leetcode.medium;//148.排序链表public class Solution148 { public static void main(Stri
2021-01-03 20:17:26 196 1
原创 LeetCode Hot 热题100 算法题 19.删除链表的倒数第N个节点-算法&测试-medium模式
LeetCode Hot 热题100 算法题 19.删除链表的倒数第N个节点-算法&测试-medium模式给定一个链表,删除链表的倒数第n个节点,并且返回链表的头节点。示例:1->2->3->4->5 n=2输出:链表变为1->2->3->5说明:给定的n保证是有效的进阶:你能尝试使用一趟扫描实现吗?package leetcode.medium;//19.删除链表的倒数第N个节点public class Solution019 { p
2021-01-03 20:13:12 141
原创 排序算法——归并排序 -基本思想&推导&优化&算法&测试
排序算法——归并排序 -基本思想&推导&优化&算法&测试归并排序基本思想:利用归并的思想,采用经典的分治策略(将问题分divide成一些小的问题后递归求解,治conquer的阶段则将分的阶段得到的各答案修补在一起,即分而治之)思路:1.将序列分成子列 直至无法再分解,对子列排序;2.将两个有序子列合并成一个有序序列;3.将该有序序列拷贝至原数组覆盖。示例:[8,4,5,7,1,3,6,2]输出:[1,2,3,4,5,6,7,8]理解:最后一次合并:p
2021-01-03 14:30:10 308
原创 LeetCode Hot 热题100 算法题 238.除自身以外数组的乘积-算法&测试-medium模式
LeetCode Hot 热题100 算法题 238.除自身以外数组的乘积-算法&测试-medium模式给你一个长度为n的整数数组nums,其中n>1,返回输出数组output,其中output[i]等于nums中除nums[i]之外其余各元素的乘积。示例:[1,2,3,4]输出:[24,112,8,6]package leetcode.medium;import java.util.Arrays;public class Solution238 { public stati
2020-12-29 23:32:37 134
转载 LeetCode Hot 热题100 算法题 287.寻找重复数-算法&测试-medium模式
LeetCode Hot 热题100 算法题 287.寻找重复数-算法&测试-medium模式给定一个包含(n+1)个整数的数组nums,其数字都在1到n之间(包括1和n)。可知至少存在一个重复的整数。假设只有一个重复的整数,找出该数。输入:[1,3,4,2,2]输出:2注意:不能更改原数组;只能使用额外的O(1)空间;时间复杂度小于O(n^2);此数组中只有一个重复的数字,但它可能不止重复出现一次。package leetcode.medium;import java.uti
2020-12-28 23:48:39 193 1
原创 LeetCode Hot 热题100 算法题 48.旋转图像-算法&测试-medium模式
LeetCode Hot 热题100 算法题 48.旋转图像-算法&测试-medium模式给定一个n×n的二维矩阵表示一个图像,将图像顺时针旋转90度。说明:必须在原地旋转图像,即直接修改输入的二维矩阵。请不要用另一个矩阵来旋转图像。示例:matrix = [ [5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16] ]输出: [ [15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11] ]思路:ne
2020-12-27 23:32:58 203
原创 LeetCode Hot 热题100 算法题 328.奇偶链表-算法&测试-medium模式
LeetCode Hot 热题100 算法题 328.奇偶链表-算法&测试-medium模式给定一个单链表,把所有的奇数节点和偶数节点分别排在一起,保持奇数节点和偶数节点的相对顺序。注意:奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点值的奇偶性;第一个节点视为奇数节点。输入:1->2->3->4->5->null输出:1->3->5->2->4->null请尝试使用原地算法完成,空间复杂度O(1),时间复杂度O(n)。p
2020-12-27 00:17:48 168
原创 LeetCode Hot 热题100 算法题 11.盛水最多的容器-算法&测试-medium模式
LeetCode Hot 热题100 算法题 11.盛水最多的容器-算法&测试-medium模式给你一个非负整数数组,每个数代表坐标中的一个点(i, ai)。在坐标内画n条垂直线,垂直线i的两个端点分别为(i, ai), (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。输入:[1,8,6,2,5,4,8,3,7]输出:49package leetcode.medium;//11.盛水最多的容器public class Solutio
2020-12-27 00:11:44 211 2
原创 LeetCode Hot 热题100 算法题 141.环形链表-算法&测试-easy模式
LeetCode Hot 热题100 算法题 141.环形链表-算法&测试-easy模式给定一个链表,判断链表中是否有环。你能用O(1)内存解决此问题吗?package leetcode.easy;import java.util.HashMap;import java.util.HashSet;import java.util.Map;import java.util.Set;//141.环形链表public class Solution141 { public stati
2020-12-27 00:05:50 211
原创 查找算法——二分查找-递归&非递归实现&找一个&找所有-推导&代码&测试
查找算法——二分查找-递归&非递归实现&找一个&找所有-推导&代码&测试二分查找仅对有序序列进行,时间复杂度O(log2 n)递归实现思路:【递增排序为例】1.确定该数组的中间的下标 mid=(left+right)/22.将所查找数findVal与arr[mid]进行比较:2.1 findVal > arr[mid] => findVal应在mid右侧,向右递归查找2.2 findVal < arr[mid] => findVal
2020-12-26 22:15:58 130 1
原创 LeetCode Hot 热题100 算法题 234.回文链表-算法&测试-easy模式
LeetCode Hot 热题100 算法题 234.回文链表-算法&测试-easy模式请判断一个链表是否是回文链表。输入1:1->2输出:false输入2:1->2->1输出:true你能否用O(n)时间复杂度和O(1)空间复杂度解决?package leetcode.easy;import java.util.ArrayList;import java.util.List;//234.回文链表:以链表中间检点为中心点 两边值对称public class
2020-12-25 23:28:42 186
原创 LeetCode Hot 热题100 算法题 160.相交链表-算法&测试-easy模式
LeetCode Hot 热题100 算法题 160.相交链表-算法&测试-easy模式编写一个程序,找到两单链表相交的起始节点。输入:listA=[1,2,3,4,5] listB=[0,3,4,5] intersectVal=5输出:value=5package leetcode.easy;import java.util.HashSet;import java.util.Set;//160.相交链表public class Solution160 { public s
2020-12-25 23:24:52 177
原创 排序算法——冒泡排序 -基本思想&推导&优化&算法&测试
排序算法——冒泡排序 -基本思想&推导&优化&算法&测试冒泡排序 基本思想:【升序】从前向后(从下标小的元素开始)依次比较相邻元素,若发现逆序(前>后)则交换,使值较大的元素逐渐从前向后移动。即:第1轮,对n个数,将最大的数移到最末,且不参与下一轮排序;第2轮,对(n-1)个数,将最大的数移到倒数第二位,且不参与下一轮排序;…=>规则:对n个数,一共进行(n-1)轮排序;第i轮(从0开始)排序,比较的次数减少。优化:...
2020-12-25 00:45:04 351
原创 LeetCode 精选TOP面试题 算法题 237.删除链表中的节点 -算法&测试-easy模式
LeetCode 精选TOP面试题 算法题 237.删除链表中的节点 -算法&测试-easy模式请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为要被删除的节点。示例:4->5->1->9 删除5输出:[4,1,9]提示:链表至少包含两个节点;链表中所有节点的值均唯一;给定节点为非末尾节点,且一定是链表中的一个有效节点;不要从你的函数中返回任何结果。package leetcode.easy;//237.删除链表中的节点pu
2020-12-25 00:43:23 151
原创 LeetCode 精选TOP面试题 算法题 88.合并两个有序数组 -算法&测试-easy模式
LeetCode 精选TOP面试题 算法题 88.合并两个有序数组 -算法&测试-easy模式给你两个有序整数数组nums1和nums2,请你将nums2合并到nums1中,使nums1成为一个有序数组。说明:nums1和nums2的有效元素数量分别为m和n;你可以假设nums1有足够的空间( 空间>=(m+n) )来保存nums2中的元素。示例:nums1 = [1,2,3,0,0,0] nums2 = [2,5,6]输出:[1,2,2,3,5,6]package leetc
2020-12-25 00:37:31 188
原创 LeetCode 精选TOP面试题 算法题 268.丢失的数字 -算法&测试-easy模式
LeetCode 精选TOP面试题 算法题 268.丢失的数字 -算法&测试-easy模式给定一个包含[0,n]中n个数的数组nums,找出这个范围内没有出现在数组中的那个数。示例:[3,0,1]输出:2注意:nums中所有数字都独一无二package leetcode.easy;import java.util.HashSet;import java.util.Set;public class Solution268 { public static void main(Str
2020-12-23 23:49:40 348
原创 LeetCode 精选TOP面试题 算法题 26.删除排序数组中的重复项 -算法&测试-easy模式
LeetCode 精选TOP面试题 算法题 26.删除排序数组中的重复项 -算法&测试-easy模式给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,必须在原地修改数组示例:[0,0,1,1,1,2,2,3,3,4]输出:5双指针思路可参考 热题100 算法题 283.移动零package leetcode.easy;public class Solution026 { public static void
2020-12-23 23:41:56 150 1
转载 LeetCode 精选TOP面试题 算法题 122.买卖股票的最佳时机II -算法&测试-easy模式
LeetCode 精选TOP面试题 算法题 122.买卖股票的最佳时机II -算法&测试-easy模式给定一个数组,它的第i个元素是一支股票第i天的价格。设计一个算法来计算你所能获得的最大利润。你可以尽可能多地完成更多的交易(多次买卖一支股票)。你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票示例1:[7,1,5,3,6,4]输出:7解释:在第二天买入(1),第三天卖出(5);在第4天买入(3),第五天卖出(6),共获得利润7。线性规划解决package leetcode.
2020-12-23 23:26:04 168
原创 LeetCode 精选TOP面试题 算法题 66.加一 -算法&测试-easy模式
LeetCode 精选TOP面试题 算法题 66.加一 -算法&测试-easy模式给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位,数组中每个元素只存储单个数字。你可以假设除了整数0以外,这个整数不会以0开头。1<=digits.length<=1000<=digits[i]<=9示例:[1,2,3]输出:[1,2,4]解释:输入的数组表示数字123示例:[9,9]输出:[1,0,0]package leetc
2020-12-23 23:17:19 157 1
原创 LeetCode Hot 热题100 算法题 448.找到所有数组中消失的数字-算法&测试-easy模式
LeetCode Hot 热题100 算法题 448.找到所有数组中消失的数字-算法&测试-easy模式给定一个范围在[1,n] (n=数组大小) 的整形数组,数组中的一些元素出现了两次,另一些只出现了一次。找到所有在[1,n]范围之间没有出现在数组中的数字。示例:[4,3,2,7,8,2,3,1]输出:[5,6]不使用额外空间且时间复杂度为O(n)package leetcode.easy;import java.util.ArrayList;import java.util.A
2020-12-22 22:41:17 124
原创 LeetCode Hot 热题100 算法题 283.移动零-算法&测试-easy模式
LeetCode Hot 热题100 算法题 283.移动零-算法&测试-easy模式给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。示例:[0,2,0,3,12]输出:[2,3,12,0,0]必须在原数组上操作,不能拷贝额外的数组尽量减少操作次数package leetcode.easy;import java.util.Arrays;public class Solution283 { public static void main(
2020-12-22 22:19:50 210
原创 LeetCode Hot 热题100 算法题 121.买卖股票的最佳时机-算法&测试-easy模式
LeetCode Hot 热题100 算法题 121.买卖股票的最佳时机-算法&测试-easy模式给定一个数组,它的第i个元素是一支股票第i天的价格。如果你最多只允许完成依笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获得的最大利润。注意:你不能在买入股票前卖出股票示例1:[7,1,5,3,6,4]输出:5示例2:[7,6,4,3,1]输出:0package leetcode.easy;public class Solution121 { public stati
2020-12-22 22:13:29 200 1
原创 LeetCode Hot 热题100 算法题 169.多数元素-算法&测试-easy模式
LeetCode Hot 热题100 算法题 169.多数元素-算法&测试-easy模式给定一个大小为n的数组,找到其中的多数元素。多数元素指在数组中出现次数大于n/2的元素。示例:[2,2,1,3,1,1,2,4,2,2,2]输出:21.遍历数组,添加元素至HashMap,key为元素值,value为该元素值出现的次数2.遍历HashMap,取出value最大的元素的key 即最后结果。package leetcode.easy;import java.util.HashMap;
2020-12-21 22:35:28 190
原创 LeetCode Hot 热题100 算法题 104.二叉树的最大深度-算法&测试-easy模式
LeetCode Hot 热题100 算法题 104.二叉树的最大深度-算法&测试-easy模式给定一个二叉树,求其最大深度。示例:[3,9,20,null,null,15,17]输出:3递归解决package leetcode.easy;public class Solution104 { public static void main(String[] args) { //创建二叉树 TreeNode root = new TreeNode(3); root.left
2020-12-21 11:48:21 129
原创 LeetCode Hot 热题100 算法题 53.最大子序和-算法&测试-easy模式
LeetCode Hot 热题100 算法题 53.最大子序和-算法&测试-easy模式最大子序和给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组至少包含一个元素),返回其最大和。示例:[-2,1,-3,4,-1,2,1,-5,4]输出:6线性规划分解成sum[i-1]和num[i],若sum[i-1]>0则加入,否则舍弃package leetcode.easy;public class Solution053 { public static void m
2020-12-20 21:31:21 170
原创 LeetCode Hot 热题100 算法题 206.反转链表-算法&测试-easy模式
LeetCode Hot 热题100 算法题 206.反转链表-算法&测试-easy模式反转一个单链表。示例:1->2->3->4->5输出:5->4->3->2->1package leetcode.easy;public class Solution206 { public static void main(String[] args) { ListNode head = new ListNode(0);//头节点不能动 Li
2020-12-20 21:24:38 150
原创 LeetCode Hot 热题100 算法题 2.两数相加-算法&测试-medium模式
LeetCode Hot 热题100 算法题 2.两数相加-算法&测试-medium模式2.两数相加给出两个非空链表表示两个非负整数,每个节点只存储一位数字,将这两个数字加起来会返回一个新的链表来表示它们的和。假设:除了数字0以外,这两个数都不会以0开头。输入:2->4->3 + 5->6->6输出:7->0->0->1原因:342+466=1007进位值carry=(n1+n2+carry)/10package leetcode.medi
2020-12-20 21:17:04 219
原创 LeetCode Hot 热题100 算法题 21.合并两个有序链表 算法&测试 -easy模式
LeetCode Hot 热题100 算法题21.合并两个有序链表 算法&测试 -easy模式21.合并两有序链表将两个升序链表合并为一个新的升序链表并返回。示例:1->2->3->4->5 3->5->7返回:1->2->3->3->4->5->5->7归并排序思想法1:递归判断链表l1和l2哪一个链表的头节点值更小,将更小值的那个链表指针后移,递归地决定添加到结果里的节点。当有一个链表为空时,递归结束。
2020-12-20 21:05:15 242
转载 LeetCode Hot 热题100 算法题 1.两数之和 -算法&测试-easy模式
LeetCode Hot 热题100 算法题1.两数之和-算法&测试@[Evelyn_97](力扣刷题 热题100 easy模式)1.两数之和给定一个整数数组nums和一个目标值target,在该数组中找出和为target的那两个整数,并返回它们的下标。示例:nums = [2,7,11,15], target = 9返回:[0,1]使用HashMap优化,时间复杂度O(n)创建哈希表,对于数组中的每一个x,首先查询哈希表中是否存在target-x,再将x插入哈希表,可保证不让x和自己匹
2020-12-20 12:37:44 296 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人