- 博客(8)
- 收藏
- 关注
原创 LeetCode:50 Pow(x,n)(Golang)
实现 pow(x, n) ,即计算 x 的整数 n 次幂函数。(x为浮点类型,n为自然数)
2024-06-29 14:08:00 115
原创 LeetCode:47 全排列2(Golang)
以 nums 为:[1,1,2,3,4] 这种情况为例,“第一个1当老大” 和 “第二个1当老大” 会产生完全相同的排列;上题的版本二就不好使了,因为进入下一层递归时,小弟的顺序被打乱了,不再是有序的。给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。本题与上一题的区别:数组中有重复的元素;要求排列结果中不能有重复的排列;输出:[[1,1,2],[1,2,1],[2,1,1]]先排序,让所有重复的元素都相邻,方便我们进行大剪枝操作。输入:nums = [1,1,2]
2024-06-21 19:30:03 153
原创 LeetCode:46 全排列(Golang)
具体思路是让数组中的元素"在每一次完全排列完之后,代码还会进入下一层循环以判断边界(即是否到达n),复杂度变为了 O(n*n!给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列。按照最直观的思路,每一层把老大推进"排位切片permu",剩下的小弟传入下一层迭代;4.对于下一层:老大坐稳后,第二个位置就变成新的老大;小弟们再次轮流选坐;1.每次递归,只需要把轮到的元素放到第一位(该元素当老大);3.对于同一层:由于老大是不同的,因此排列结果不会有重复;2.排列的结果是老大+所有小弟的全排列;
2024-06-21 19:27:23 309
原创 LeetCode:45 跳跃游戏2(Golang)
给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处。i + j < n返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。
2024-06-16 15:25:41 258
原创 LeetCode:40 组合总和2(Golang)
给你一个整数数组 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用 一次。注意:解集不能包含重复的组合。
2024-06-14 15:54:35 278
原创 VsCode 代码复制到 Word 后:不间断空格
我喜欢用Word做笔记,同时会把IDE中代码的颜色、格式复制到Word上:但 VsCode 的代码复制到Word时,发现空格占位异常,并且代码(Python)复制回VsCode会编译失败;
2024-06-09 14:10:29 391
原创 LeetCode:39 组合总和(Golang)
给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。
2024-06-09 13:57:05 258 2
原创 LeetCode:33 搜索旋转排序数组(Golang)
0.题目要求时间复杂度 O(logN) ,显然要用二分查找法;1.由于原数组是有序的,如果数组从中间点被旋转过,那么一定有:nums[0]>nums[len(nums)-1];2.考虑先用二分法找到旋转点,以旋转点为界的两个分数组是有序的,再用二分查找得到target的位置;3.找旋转点的逻辑为:取mid指针为left、right指针的中点,若 nums[left]>nums[mid],旋转点在mid(含)左边;否则旋转点在mid(不含)右边;依次递归查找;
2024-05-02 21:51:30 208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人