lesson snake hot s2

[LeetCode Hot 100] LeetCode138. 随机链表的复制

题目描述 思路一:添加"小弟" 根据遍历到的原节点创建对应的新节点,每个新创建的节点是在原节点后面。 原节点i的随机指针(如果有的话),指向的是原节点j,那么新节点i的随机指针,指向的是原节点j的next 最后将两个链表分开,再返回新链表就可以 思路二:使用哈希表 首先创建一个哈希表,再遍历原链表, ......
LeetCode Hot 100 138

[LeetCode Hot 100] LeetCode24. 两两交换链表中的节点

题目描述 思路: 创建dummy节点,令dummy.next = head。令cur表示当前到达的节点,初始时cur = dummy。每次需要交换cur后面的两个节点。 如果cur的后面没有节点或者只有一个节点,则没有更多的节点需要交换,因此结束交换。否则,获得cur后面的两个节点node1和nod ......
LeetCode 节点 Hot 100 24

[LeetCode Hot 100] LeetCode155. 最小栈

题目描述 思路一:使用辅助栈 定义一个[数据栈]来支持push、pop、top操作 定义一个[辅助栈],其栈顶为当前的最小值,以支持常数时间复杂度的getMin操作 思路二:使用ArrayDeque 栈元素中除了保存当前值之外,额外保存当前最小值 使用静态内部类 方法一:对应思路一 class Mi ......
LeetCode Hot 100 155

[LeetCode Hot 100] LeetCode20. 有效的括号

题目描述 思路: 栈的经典应用。 注意下遇到右括号的代码,即边界情况: // 遇到右括号,则进行括号匹配 if (!stack.isEmpty() && stack.peek() == match(c)) { // 如果匹配则直接弹出栈顶元素 stack.pop(); } else { // 如果不 ......
LeetCode 括号 Hot 100 20

[LeetCode Hot 100] LeetCode295. 数据流的中位数

题目描述 思路:一个大根堆+一个小根堆+保持数量 一个大根堆用来记录数轴左边的数值 一个小根堆用来记录数轴右边的数值 大根堆的容量要么等于小根堆的容量(此时是偶数个有序整数列表),要么大根堆的容量比小根堆的容量大1(此时是奇数个有序整数列表) 如果数量不符合上述条件,则将超过容量的那个堆的堆顶元素插 ......
LeetCode 中位数 数据流 数据 Hot

[LeetCode Hot 100] LeetCode215. 数组中的第K个最大元素

题目描述 思路:小顶堆 维护一个大小为K的小顶堆 遍历所有元素: 如果当前堆中元素个数小于K,则将元素添加到堆中 如果当前堆中元素个数等于K,则判断第K + 1 方法一: class Solution { public int findKthLargest(int[] nums, int k) { ......
LeetCode 数组 元素 Hot 100

[LeetCode Hot 100] LeetCode347. 前K个高频元素

题目描述 思路:小顶堆 首先遍历整个数组,并是用哈希表记录每个数字出现的次数,并形成一个"出现次数数组"。 找出原数组的前k个高频元素,就相当于找出"出现次数数组"的前K大的值。 建立一个小顶堆,然后遍历"出现次数数组" 如果堆的元素个数小于k,就可以直接插入堆中。 如果堆的元素个数等于k,则检查堆 ......
LeetCode 元素 Hot 100 347

[LeetCode Hot 100] LeetCode2. 两数相加

题目描述 思路:模拟 每次3个数相加:l1链表的值 + l2链表的值 + 进位 如果 l1链表不为空 或者 l2链表不为空 或者 进位不为0 我们就执行循环 那么和存储的是 t % 10 进位就是t / 10 因为题目需要创造一条链表,所以我们创建一个dummy结点的话会方便一点。 方法一: /** ......
LeetCode LeetCode2 Hot 100

[LeetCode Hot 100] LeetCode86. 分隔链表

题目描述 思路 可以将链表分成两个小链表,一个链表中的元素大小都小于x,另一个链表中的元素都大于等于x,然后再把这两条链表连接到一起,就得到题目想要的结果。 这个题类似于合并两个有序链表:只不过另一个链表只有唯一一个节点x。 合并这两个链表。 方法一: /** * Definition for si ......
LeetCode Hot 100 86

[LeetCode Hot 100] LeetCode23. 合并K个升序链表

题目描述 思路:优先队列 使用优先队列这个数据结构,对于这个数据结构,我们不用去管内部是如何实现的,我们只要知道有这么一种数据结构能帮助我们将一堆数据塞到优先队列这一个黑盒中,然后我们可以获取这堆数中最小的值或者最大的值。 代码一: /** * Definition for singly-linke ......
LeetCode 升序 Hot 100 23

S2MBF-ASEMI贴片整流二极管S2MBF

编辑:ll S2MBF-ASEMI贴片整流二极管S2MBF 型号:S2MBF 品牌:ASEMI 封装:SMBF 正向电流:2A 反向电压:1000V 引线数量:2 芯片个数:1 芯片尺寸:60MIL 漏电流:<5ua 恢复时间: 浪涌电流:100A 芯片材质: 正向电压:1.10V 工作结温:-65 ......
贴片 二极管 2MBF S2MBF-ASEMI MBF

[LeetCode Hot 100] LeetCode73. 矩阵置零

题目描述 思路一:开辟两个数组,时间复杂度O(m + n) 开辟两个数组用来记录哪些行、哪些列需要置为零。 这样时间复杂度为O(m + n)。 思路二: 原地算法:不适用额外空间或者说常数级空间来实现算法。 类似于使用set保存每行每列是否需要置零, 方法一:对应思路一 class Solution ......
LeetCode 矩阵 Hot 100 73

[LeetCode Hot 100] LeetCode19. 删除链表的倒数第N个结点

题目描述 思路一:采用两次遍历 第一遍遍历先获取链表的长度length 第二次从dummy节点开始走length - n步 然后将该节点指向下下个节点 思路二:采用一次遍历 设置虚拟节点dummyHead指向head 设定双指针p和q,初始都指向虚拟节点dummyHead 移动q,直到p与q之间相隔 ......
LeetCode 结点 Hot 100 19

[LeetCode Hot 100] LeetCode21. 合并两个有序链表

题目描述 思路:新建dummy去"穿针引线" 新建一个dummy节点去"穿针引线" 注意最后返回的是dummy.next 方法一: /** * Definition for singly-linked list. * public class ListNode { * int val; * List ......
LeetCode 两个 Hot 100 21

[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 Hot 100] LeetCode3. 无重复字符的最长子串

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

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

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

[LeetCode Hot 100] LeetCode1. 两数之和

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

[LeetCode Hot 100] LeetCode15. 三数之和

题目描述 思路 特判:对于数组长度为n,如果数组为null或者数组长度小于3,返回[]。 对数组进行排序。 遍历排序后的数组: 若 nums[i]>0nums[i]>0nums[i]>0:因为已经排序好,所以后面不可能有三个数加和等于 000,直接返回结果。 对于重复元素:跳过,避免出现重复解。 令 ......
LeetCode 之和 Hot 100 15

[LeetCode Hot 100] LeetCode160. 相交链表

题目描述 思路 方法一: /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = nu ......
LeetCode Hot 100 160

[LeetCode Hot] LeetCode283. 移动零

题目描述 方法一:时间复杂度O(n2) class Solution { public void moveZeroes(int[] nums) { for (int i = 0; i < nums.length; i ++) { // 指针i为0的时候停止 if (nums[i] == 0) { / ......
LeetCode Hot 283

[LeetCode Hot 100] LeetCode11. 盛最多的水

题目描述 方法一:暴力,超出时间限制 模拟所有情况,记录最大的体积值。 体积 = Math.min(height[i], height[j]) * (j - i) class Solution { public int maxArea(int[] height) { int res = Intege ......
LeetCode Hot 100 11

snake

misc真的misc 题解 binwalk发现图片有其他文件,先分离文件 foremost snake.jpg 拿到一个zip压缩包,(未考加密)解压之后获得一个key(钥匙)文件,一个cipher(密码)文件 秘钥和密文都给了,猜测是对称加密的算法,搜到了关于蛇的算法 Serpent 加密 解密网 ......
snake

[LeetCode Hot 100] LeetCode128. 最长连续序列

题目描述 思路 将数组所有点映射到一个数轴上,可以发现问题变为求每段区间首元素到尾元素的长度的最大值。 区间的长度:区间尾元素值-区间首元素值 + 1 方法一:超出时间限制 这个方法是最初自己想到的,但是超时了,主要原因是程序会有冗余的遍历过程,增加了开销。 思路:(时间复杂度太高) 先把所有元素加 ......
LeetCode 序列 Hot 100 128

Java网络编程--Lesson

一.InetAddress 此类是获取网络地址实例的一个类,但是不能通过new 来实例化这个类,因为它没有构造器,但是可以通过组合的方式来使用类中的方法 拿取主机为localhost的网络地址实例 InetAddress address=InetAddress.getByName("localhos ......
网络编程 Lesson 网络 Java

高手在民间:六年老机三星S2吃上奥利奥!

三星Galaxy S2,发布于2011年,搭载主频为1.2GHz的Exynos 4210处理器,运行内存为1GB,屏幕为800*480分辨率的4.3英寸AMOLED,出厂系统版本为Android 2.3。这款6年前的老机,近日吃上了Android 8.0奥利奥。 ▲图片来源:stackexchang ......
民间 高手

leetcode hot100-03 移动零

移动零 地址:https://leetcode.cn/classic/problems/move-zeroes/description/ 难点: 在原数组的基础上进行移动 保持相对顺序思考过程: 思考过程: 一开始没有考虑顺序的问题 记录最后一个不是0的位置 从左遍历数据 如果为0 则将数据与最后一 ......
leetcode hot 100