![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 60
musite
今天也是头秃敲代码的一天呢。
展开
-
HashMap数据结构分析+源码阅读笔记
首先,我们要知道什么是HashMapHashMap 简介HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。JDK1.8 之前 HashMap数据结构 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(数据结构中的连地址法解决冲突)。JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于8,且数组大小大于等于64时,转换为红黑树,用来减少搜索时间。(如果数组大小小于64,首先考虑数组扩容),另外如果红黑树的节原创 2021-02-22 20:28:08 · 182 阅读 · 1 评论 -
算法练习Day11 [LeetCode]560. 和为 K 的子数组
560. 和为 K 的子数组给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。暴力解法:class Solution { public int subarraySum(int[]原创 2021-02-02 21:55:37 · 145 阅读 · 0 评论 -
算法练习Day10 [LeetCode]974. 和可被 K 整除的子数组
974. 和可被 K 整除的子数组给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。 示例:输入:A = [4,5,0,-2,-3,1], K = 5输出:7解释:有 7 个子数组满足其元素之和可被 K = 5 整除:[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3] 提示:1. 1 <= A.length <= 300002. -原创 2021-02-01 21:19:54 · 132 阅读 · 2 评论 -
算法练习Day8 [LeetCode]15. 三数之和
[LeetCode]15. 三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[] 提示:0 <= nums.le原创 2021-01-27 20:39:57 · 83 阅读 · 0 评论 -
算法练习Day7 [LeetCode]有序数组相关问题
[LeetCode]有序数组相关问题88. 合并两个有序数组给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2原创 2021-01-26 18:34:59 · 198 阅读 · 0 评论 -
算法练习Day6 [LeetCode]滑动窗口相关题目
[LeetCode]滑动窗口相关题目首先我们要了解什么是滑动窗口?滑动窗口算法可以用以解决数组/字符串的子元素问题,它可以将嵌套的循环问题,转换为单循环问题,降低时间复杂度。滑动窗口最大值给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7原创 2021-01-25 18:58:29 · 117 阅读 · 0 评论 -
算法练习Day5 [LeetCode]1248.优美子数组
[LeetCode]1248.优美子数组给你一个整数数组 nums 和一个整数 k。如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。请返回这个数组中「优美子数组」的数目。示例 1:输入:nums = [1,1,2,1,1], k = 3 输出:2解释:包含 3 个奇数的子数组是 [1,1,2,1] 和 [1,2,1,1] 。示例 2:输入:nums = [2,4,6], k = 1 输出:0解释:数列中不包含任何奇数,所以不存在优美子数组。示例 3原创 2021-01-24 22:01:30 · 116 阅读 · 0 评论 -
算法练习Day4 [LeetCode]缺失的第一个正数
[LeetCode]缺失的第一个正数给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。进阶:你可以实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案吗?示例 1:输入:nums = [1,2,0] 输出:3 示例 2:输入:nums = [3,4,-1,1] 输出:2 示例 3:输入:nums = [7,8,9,11,12] 输出:1提示:0 <= nums.length <= 300-231 <= nums[i] <= 23原创 2021-01-23 13:49:11 · 182 阅读 · 0 评论 -
算法练习Day3 [LeetCode] Add Two Numbers 两数相加
[LeetCode] Add Two Numbers 两数相加You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.You原创 2020-07-18 22:33:57 · 122 阅读 · 0 评论 -
算法练习Day2[LeetCode] Two Sum两数之和
[LeetCode] 1. Two Sum 两数之和Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same element twice.Example:Given原创 2020-07-14 22:20:44 · 166 阅读 · 0 评论 -
算法练习(day 1)
算法练习(day 1)题和答案源自YinJianxiang的博客,作为菜鸡对大佬的代码学习一下。原地址:https://blog.csdn.net/YinJianxiang/article/details/73409777问题 A: CONTEST1.加法变乘法题目描述已知X可以写成从1开始连续若干个整数的和, 现在要求把其中两个不相邻的加号变成乘号,使得结果为Y。找出所有满足条件的可能答案并输出(把两个乘号左边的数字用小括号括起来,中间用英文逗号间隔,两个括号之间不空格);若找不到满足的条件转载 2020-07-07 18:55:48 · 215 阅读 · 0 评论