力扣数组题目

1013. 将数组分成和相等的三个部分

简单题,利用双指针左右遍历,注意右指针要大于左指针的结束位置,时间复杂度O(N),空间复杂度为常数

2 169. 多数元素

       想要用字典统计每个元素出现的次数时,可以用collections模块的Counter()方法,找最大值可以用most_common()方法,这个题最快的方法是投票法,思想是出现最多的数与其它的数进行抵消,最后留下来的一定是出现次数超过一半的众数

48. 旋转图像

       利用观察归纳可以写出四个旋转点的坐标,注意奇数和偶数的不同,通过画图可以观察出旋转区域,当为偶数时,旋转区域为正方形,当为奇数时,旋转区域为矩形,

41. 缺失的第一个正数

注意这道题里用的是让数和索引相对应的方法,如果对上了不用管,如果没对上且该数应该放置的地方也没对上,这交换位置,直到对不上为止,注意下面赋值的方法,不可交换,如果交换了是错误的,

nums[nums[i]-1], nums[i] = nums[i], nums[nums[i]-1]

448. 找到所有数组中消失的数字

同上题一样的方法,仍是让数和索引对应起来,如果不对应则交换,直到无法交换为止,

442. 数组中重复的数据

同448一样,只是第二遍遍历时,存储的数不一样,

238. 除自身以外数组的乘积

先用暴力方法进行求解,再进行优化,

 
原文地址:https://www.cnblogs.com/xxswkl/p/12461211.html