- 博客(4)
- 资源 (1)
- 收藏
- 关注
原创 算法 旋转图像
法二,找规律分治,知晓旋转后元素的位置的列等于原来的行,原来的列+旋转后的行=n-1--->旋转后的列=n-1-原来的行。法-:数学方法,顺时针90度,既将矩阵转置后每行元素再首尾交换。
2023-03-29 16:21:40 22
原创 算法 下一个排列(O(n))
则k后的所有元素中按从前往后找,找到比nums[k]小的第一个元素为nums[i],则因为k之后数组必为降序,则nums[i-1]为从后往前第一个比k大的元素。第二,非降序,则至少有一个升序子排列,既从后往前至少有一个降序排列,则从后向前找第一个降序排列,找到下降的位置为k,比它大的下一个排列。如123有123,132,213,231,312,321排列,但是它的下一个排列为132.首先,分为两种情况,第一:本身是降序,则下一个排列为数组升序。2.注意排列的意思,就是数学中的排列组合中全排列的意思。
2023-03-29 15:24:26 38
原创 算法 三数之和
采用三种方法,两种暴力,一种前后指针,相比来说,前后指针易懂,且时间复杂度为O(n^2),空间复杂度为O(1),比较友好,其他两种方法,写到一半,感觉太麻烦,没写。1.list已经重写tostring,可以直接打印,并且有序可重复,set无序不可重复。暴力法搜索时间复杂度为O(N^3),要进行优化,可通过双指针动态消去无效解来提高效率。2.数组可以直接转为list,list也可转数组。5.一般说的时间复杂度都为平均复杂度。3.前后指针实际上有分治的思想。4.左右指针相遇,结束循环。6.元组一般无顺序一说。
2023-03-28 15:57:11 24
原创 算法:两数之和
用map的key存储数组的值,value存储索引,把数组存储在哈希表中,那么只需找到你要找的目标数组所对应的数值,即可用哈希表找出对应的索引,易知哈希表的containsKey和get都为O(1),则只需遍历一次数组即可获得答案,时间复杂度为O(n)。其中,“类型”为集合元素的类型,“变量名”表示集合中的每一个元素,“集合”是被遍历的集合对象或数组。每执行一次循环语句,循环变量就读取集合中的。只是用于遍历比较方便,但是没有索引下标,所以并不常用。for(类型 变量名:集合) {,其执行流程如图 1 所示。
2023-03-27 16:20:57 26 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人