乘积 数组leetcode 152

秦疆的Java课程笔记:58 数组 冒泡排序

总共有八大排序,其中冒泡排序无疑是较为出名的排序算法之一。 冒泡排序的代码相当简单,两层循环,外层冒泡轮数,里层依次比较。 当看到嵌套循环,应该立马意识到,这个算法的时间复杂度是\(O(n^2)\)。 冒泡排序基本步骤: 比较数组中两个相邻元素,如果第一个数比第二个数大,就交换位置。 每一次比较,产 ......
数组 课程 笔记 Java

秦疆的Java课程笔记:56 数组 二维数组

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。 秦疆老师表示Java中并不太使用二维以上的多维数组。 例如二维数组:int a[][] = new int[2][5],就可以看成是一个两行五列的数组 public class ArrayDemo1 { ......
数组 课程 笔记 Java

刷题复习(二)数组-双指针

刷题复习(二)数组-双指针 https://labuladong.gitee.io/algo/di-ling-zh-bfe1b/shuang-zhi-fa4bd/ 1、删除有序数组中的重复项 慢指针用于统计不重复项,快指针用于不停前进对比是否有新的不重复项,有的话进行替换 class Solutio ......
数组 指针

[LeetCode Hot 100] LeetCode234. 回文链表

题目描述 思路1:将值复制到数组中然后使用双指针 计算链表的长度 创建等长的数组 将链表中的数依次放入数组中 使用左右指针判断链表是否是回文链表 时间复杂度:O(n) 空间复杂度:O(n) 思路2:快慢指针+反转链表 用快慢指针,快指针走两步,慢指针走一步,快指针遇到终止位置时,慢指针就在链表中间位 ......
LeetCode 回文 Hot 100 234

[LeetCode Hot 100] LeetCode206. 反转链表

题目描述 思路:双指针算法 方法一: /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) ......
LeetCode Hot 100 206

[LeetCode Hot 100] LeetCode49. 字母异位词

题目描述 思路:哈希表 对字符串排序,如果是异位词,排序后就变成一样的了。 方法一: class Solution { public List<List<String>> groupAnagrams(String[] strs) { Map<String, List<String>> map = n ......
LeetCode 字母 Hot 100 49

[LeetCode Hot 100] LeetCode141. 环形链表

题目描述 思路:快慢指针 slow指针:每次移动一个节点 fast指针:每次移动两个节点 如果链表中存在环,fast指针最终会在某一时刻追上slow指针,这是由于移动速度快的fast指针会在某个时刻绕圈并追上速度慢的slow指针 条件 fast != null && fast.next != nul ......
LeetCode 环形 Hot 100 141

[LeetCode] 2264. Largest 3-Same-Digit Number in String

You are given a string num representing a large integer. An integer is good if it meets the following conditions: It is a substring of num with length ......
Same-Digit LeetCode Largest Number String

LeetCode-Java:55.跳跃游戏

题目 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 示例 1: 输入:nums = [2,3,1,1,4] 输出:true 解释:可以先跳 ......
LeetCode-Java LeetCode Java 55

面试leetcode算法经典 150 题

数组、字符串 1.合并两个有序数组 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组不应由 ......
算法 leetcode 经典 150

Day10 数组

1. 数组声明 //方法一:首选 dataType[] arrayName; //方法二:非首选,像c++ dataType arrayName[]; 2. 数组创建 2.1 动态初始化 //不初始化,大小自行决定 dataType[] array = new dataType[arraySize] ......
数组 Day 10

除自身以外数组的乘积

题解模板 难度 : 简单 | 中等√ | 困难 用时:28分钟(第一次) 作题日期:2023-12-04 ps: 本人理解有限,以下是自我理解,官方和大佬有更完整和详细的解析!!! 题目描述 题目描述给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中 ......
乘积 数组

秦疆的Java课程笔记:55 数组 数组的使用

一些基础用法,其中增强for循环其实就是“For-Each循环” public class ArrayDemo1 { public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; //打印全部的数组元素 for (int i ......
数组 课程 笔记 Java

秦疆的Java课程笔记:54 数组 下标越界及小结

数组的四个基本特点: 其长度是确定的。数组一旦被创建,他的大小就是不可改变的。 其元素必须是相同类型,不允许出现混合类型。 数组中的元素可以是任何数据类型,包括基本类型和引用类型。 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是 ......
下标 数组 小结 课程 笔记

秦疆的Java课程笔记:53 数组 三种初始化及内存分析

Java内存分析: 当声明数组int[] array = null时,只在栈中存在一个名为array的数组。当创建数组array = new int[3]时,在堆中开辟了一个存在3个int数据的空间。当给元素赋值时,堆中的每一个int类型获得了一个自己的值。 “下标越界异常”报错java.lang. ......
数组 内存 课程 笔记 Java

秦疆的Java课程笔记:51-52 数组 什么是数组&数组的声明和创建

51 什么是数组 数组是入门阶段的最后部分。 数组的定义: 数组是相同类型数据的有序集合。 数组描述的是相同类型的若干数据,按照一定的先后次序排序组合而成。 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。 52 数组的声明和创建 首先必须声明数组变量,才能在程序中使用数组 ......
数组 课程 笔记 Java amp

代码随想录算法训练营第五天| 242.有效的字母异位词 349. 两个数组的交集 1. 两数之和

LeetCode 242.有效的字母异位词 题目链接: LeetCode242 思路: 使用C++自带的库函数,经过排序后进行比较(使用库函数) class Solution { public: bool isAnagram(string s, string t) { if(s.length() ! ......
随想录 之和 训练营 数组 交集

差分数组

一、差分定义和性质 首先差分主要是针对一个数组中的元素进行频繁的增加或删除。假设现在有一个数组nums,现在我要对里面的某个区间的元素全部加2, 然后要对另外一个区间全部减1。一般的思路是直接for循环进行遍历,这样的话时间复杂度是O(n),而我们使用差分数组的话时间复杂度为O(1)。 对于一个数组 ......
数组

[LeetCode Hot 100] LeetCode3. 无重复字符的最长子串

题目描述 思路:滑动窗口 定义需要维护的变量 // 1. 定义需要维护的变量 int max_len = 0; Map<Character, Integer> hashmap = new HashMap<>(); 窗口不满足条件,窗口收缩。窗口不是固定大小所以用while // 4. 窗口不满足条件 ......
LeetCode LeetCode3 字符 Hot 100

LeetCode643. 子数组最大平均数I

题目描述 思路:滑动窗口模板 定义需要维护的变量 // 1. 定义需要维护的变量 double sum = 0; double max_avg = Integer.MIN_VALUE; 窗口固定大小为k,所以用if if (end - start + 1 == k) { sum -= nums[st ......
平均数 数组 LeetCode 643

[LeetCode Hot 100] LeetCode438. 找到字符串中所有字母异位词

题目描述 思路:滑动窗口模板 需要维护的变量: // 1. 用于存放结果 List<Integer> res = new ArrayList<>(); // 2. 定义需要维护的变量:根据题意可知是一个哈希表 Map<Character, Integer> map = new HashMap<>() ......
LeetCode 字符串 字母 字符 Hot

LeetCode567. 字符串的排列

题目描述 思路:滑动窗口模板 定义需要维护的变量 Map<Character, Integer> map = new HashMap<>(); Map<Character, Integer> map_s1 = new HashMap<>(); for (char c : s1.toCharArray ......
字符串 字符 LeetCode 567

[LeetCode] 1266. Minimum Time Visiting All Points

On a 2D plane, there are n points with integer coordinates points[i] = [xi, yi]. Return the minimum time in seconds to visit all the points in the ord ......
LeetCode Visiting Minimum Points 1266

Leetcode刷题day4-哈希表.异位词.交集.快乐数.两数和

242.有效的字母异位词 242. 有效的字母异位词 - 力扣(LeetCode) 给定两个字符串 _s_ 和 _t_ ,编写一个函数来判断 _t_ 是否是 _s_ 的字母异位词。 注意: 若 _s_ 和 _t_ 中每个字符出现的次数都相同,则称 _s_ 和 _t_ 互为字母异位词。 示例 1: 输 ......
交集 Leetcode day4 day

LeetCode-Java:121. 买卖股票的最佳时机

题目 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 ......
LeetCode-Java 时机 LeetCode 股票 Java

LeetCode-Java:122. 买卖股票的最佳时机Ⅱ

题目 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的 最大 利润 。 示例 1: 输入:prices = [7, ......
LeetCode-Java 时机 LeetCode 股票 Java

[LeetCode Hot 100] LeetCode1. 两数之和

题目描述 思路: 如果哈希表存在target-nums[i],则返回索引下标i和对应的key值(可以按任意顺序返回答案) 如果哈希表中不存在target-nums[i],则存入nums[i]和对应的索引值 方法一:哈希表 class Solution { public int[] twoSum(in ......
LeetCode 之和 LeetCode1 Hot 100

代码随想录算法训练营第4天 | leetcode24、leetcode19、leetcode面试题02

(本合集全部为Go语言实现) 相关文章链接:24题解 19题解 02.07题解 142题解 相关视频链接: Leetcode24 状态:秒了 实现过程中的难点:对组内两个节点的指针指向流转需要倒腾明白。临时头结点真的很有用 个人写法 func swapPairs(head *ListNode) *L ......
leetcode 随想录 训练营 随想 算法

ABC 331 F - Palindrome Query(字符串哈希,树状数组)

字符串哈希 [OI-Wiki](字符串哈希 - OI Wiki (oi-wiki.org)) 分为两种哈希方式:以左为高位 和 以右为高位 如果只是快速查询每个字串的哈希值,用以左为高位比较简单,即 \[Hash[l...r]=Hash[1...r]-Hash[1...(l-1)]\times ba ......
数组 字符串 Palindrome 字符 Query

代码随想录算法训练营第3天 | leetcode203、leetcode707、leetcode206

(本合集全部为Go语言实现) 相关文章链接:203题解 707题解 206题解 相关视频链接: Leetcode203 状态:秒了 实现过程中的难点:链表遍历一定要记得指针后移。另外,在头指针前加入一个新的临时头节点可以统一整个遍历过程,否则需要先确定初始时两指针的状态 个人写法 /** * Def ......
leetcode 随想录 训练营 随想 算法