数组
文章平均质量分 56
数组相关
思变。
知道的越多,不知道的越多
展开
-
【排序 + 快慢指针】18. 四数之和 (中等)
四数之和,和15.三数之和是一个思路,都是使用双指针法, 基本解法就是在15.三数之和的基础上再套一层for循环。使用双指针可以将原本O(n ^ 4) 降为 O(n ^ 3)感兴趣可以先去看 15.三数之和,上面有题目的链接。请你找出并返回满足下述全部条件且不重复的四元组。原创 2023-04-11 17:01:55 · 28 阅读 · 0 评论 -
【哈希表】349.两个数组的交集(简单)
将nums1的元素一次add进set集合中,可以保证重复的元素在set集合中只出现一次,之后循环nums2的元素,判断如果当前元素在set集合中存在,则代表有交集,将当前元素add进retSet即可, 至于retSet,由于nums2中的元素很可能也存在重复,所以也要使用set存储结果集。将两个数组分别put进两个hashmap,因为hashmap天生key不存在重复,之后再循环第一个map,判断每个键在map2中是否存在,如果不存在则remove,存在则不需要操作,最后将map的key转为数组即可。原创 2023-04-10 17:04:11 · 174 阅读 · 1 评论 -
【哈希表】1.两数之和 (简单)
利用hashmap解决,key存储数组元素值,value存储该元素下标。循环数组,利用target - nums[i]得出的结果值去map中get,如果get到,说明相加 == target的。给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。条件符合,返回当前元素下标以及map的value所代表的下标。没什么好说的,比较简单,暴力循环的办法是下下策。**进阶:**你可以想出一个时间复杂度小于。原创 2023-04-10 17:21:01 · 38 阅读 · 0 评论 -
【哈希表】454. 四数相加 II (中等)
454. 四数相加 II (中等)原创 2023-04-11 10:57:36 · 28 阅读 · 0 评论 -
【排序 + 快慢指针】15. 三数之和 (中等)
同时在循环体内定义快慢指针,left = i + 1;给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i! 如果nums[i] + nums[left] + nums[right] < 0,说明当前三数之和小了,将left++,向右移动一位,增加当前和。3、移动快慢指针的条件限制:如果nums[i] + nums[left] + nums[right] > 0 ,说明当前三数之和大了,将right–,向左移动一位,减小当前和。原创 2023-04-11 15:58:03 · 36 阅读 · 0 评论 -
【稀疏数组】
1、先读取稀疏数组的第一行,这样就可以直接创建出一个二维数组,比如上面的 newArray[11] [11]当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组,达到节省空间的目的。2)、把具有不同值的元素的行列及值记录在一个**小规模的数组(稀疏数组)**中,从而缩小程序的规模。2、根据sum就可以创建稀疏数组 array[sum + 1] [3]1、遍历原始的二维数组,找出有效值的个数 sum。3、将二维数组的有效值存入到稀疏数组中。1)、记录数组一共有。原创 2023-04-10 15:44:06 · 45 阅读 · 0 评论