leetcode算法
文章平均质量分 61
记录自己在leetcode上算法题的解法
GameBit
一个站在游戏开发大门前的小学生
展开
-
LeetCode之 最少交换次数来组合所有的 1
题目描述给出一个二进制数组 data,你需要通过交换位置,将数组中 任何位置 上的 1 组合到一起,并返回所有可能中所需 最少的交换次数。题解首先举个栗子 假设数组为 [1 0 1 0 1],其中 1 数字的总数为3,那么我们只需要枚举长度为3的所有子序列,并找到其中 0 的个数最少的子序列,例如:子序列 [1,0,1] 其中0的个数,即为要交换的最少次数,时间复杂度O(n*c)。上述方法当数据量过大时,时间复杂度过高,接下来我们采用滑动窗口的方法来解决这道题。我们依然统计数组中 1 的总数量原创 2022-05-17 08:28:18 · 630 阅读 · 0 评论 -
LeetCode之 数组中的第K个最大元素
题目描述给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。题解这道题有多种解法,一个很容易想到的算法为 降序排序整个数组 然后取索引为K-1的元素 即可。当我们用冒泡排序等初等排序时,这道题的 时间复杂度为O(N2N_2N2)。以冒泡排序为例,其实当我们进行了K趟排序之后,就已经找到了第K个最大元素,已经没有必要进行剩下的排序,这时时间复杂度可以降到 O(N*K)。今天讲一个较为巧妙的方原创 2022-05-12 22:07:41 · 279 阅读 · 0 评论 -
leetcode之最长回文子串
最长回文串原创 2022-05-07 11:32:00 · 570 阅读 · 0 评论