leetcodehot100专题

一个月速刷leetcodeHOT100 day16 搞懂贪心算法 以及相关题目

前言 欢迎光顾一下我的闲鱼小店 CoderZhai 网页、小程序设计 大学生作业 经验丰富 价格便宜 贪心算法 在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解 买卖股票的最佳时机 给定一个数组 pri

笨蛋学算法之LeetCodeHot100_4_移动零(Java)

package com.lsy.leetcodehot100;public class _Hot4_移动零 {public static int[] moveZeroes(int[] nums){//判断数组是否为nullif(nums==null && nums.length==0){return null;}/*** 初始化两个指针 i 和 noZero,其中 i 用于遍历数组,noZer

笨蛋学算法之LeetCodeHot100_1_两数之和(Java)

package com.lsy.leetcodehot100;public class _Hot1_两数之和 {//自写方法public static int[] twoSum1(int[] nums, int target) {//定义存放返回变量的数组int[] arr = new int[2];//遍历整个数组for (int i = 0; i < nums.length; i++) {

笨蛋学算法之LeetCodeHot100_2_字母异位词分组(Java)

package com.lsy.leetcodehot100;import java.util.*;public class _Hot2_字母异位词分组 {public static List<List<String>> groupAnagrams(String[] strs){//首先,定义一个map类型,其中key为String,value为List<String>//key主要是用来存放

一个月速刷leetcodeHOT100 day14 彻底搞懂二分搜索 以及相关题目

二分查找算法(Binary Search Algorithm) 是一种用于在已排序数组中查找特定元素的高效算法。它的基本思想是每次将待查找的区间分成两部分,并确定目标元素位于哪一部分中,然后只在目标区间中继续查找,直到找到目标元素或者确定目标元素不存在。 基本实现 function BinarySearch(nums, target) {let [left, right] = [0, num

一个月速刷leetcodeHOT100 day11 链表完全解析 以及链表5道easy题

链表 表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包活两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 更用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去

一个月速刷leetcodeHOT100 day03

最长连续序列 // 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。// 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。// 示例 1:// 输入:nums = [100,4,200,1,3,2]// 输出:4// 解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。// 示例 2:// 输入:nums = [0,3,

一个月速刷leetcodeHOT100 day02

今天的三道题 移动零 在双指针分组里的简单题 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 输入: nums = [0,1,0,3,12] 输出: [1,3,12,0,0] 输入: nums = [0] 输出: [0] //我的做法是直接删0,后面补0function moveZero

一个月速刷leetcodeHOT100 day 01

两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。 //哈希表做法function twoSum(nums, target) {let obj = new Map();for (let i = 0; i < nums.length; i++) {// 计算需要的另一个值cons

一个机器人位于一个 m x n 网格的左上角 。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。问总共有多少条不同的路径?【LeetCodeHot100】

力扣热题100之62:   先贴代码: class Solution {public int uniquePaths(int m, int n) {// 创建棋盘int[][] board = new int[m][n];// 将第0列的格子路径设为1for (int i = 0; i < m; i++) {board[i][0] = 1;}// 将第0行的格子路径设为1for (int