![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
Yirschen
这个作者很懒,什么都没留下…
展开
-
【算法分析与设计】第二章 排序
1.1、选择、冒泡、插入排序 a、选择排序 算法描述 1.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。 2.再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 3.重复第二步,直到所有元素均排序完毕。 时间复杂度: O(N^2),空间复杂度: O(1) 代码 template<typename T> //整數或浮點數皆可使用,若要使用物件(class)時必須設定大於(>)的運算子功能 void selection_sort(std::vector原创 2020-08-10 21:06:57 · 212 阅读 · 0 评论 -
【C++】二分查找2--LeetCode540.有序数组中的单一元素
题目: 给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。 示例 1: 输入: [1,1,2,3,3,4,4,8,8] 输出: 2 示例 2: 输入: [3,3,7,7,10,11,11] 输出: 10 注意: 您的方案应该在 O(log n)时间复杂度和 O(1)空间复杂度中运行。 思路: 在二分查找模板上进行修改。 记index为Single Elemen...原创 2020-04-08 20:59:58 · 250 阅读 · 1 评论 -
【C++】二分查找1--LeetCode744.寻找比目标字母大的最小字母
题目: 给定一个只包含小写字母的有序数组letters 和一个目标字母 target,寻找有序数组里面比目标字母大的最小字母。 在比较时,数组里字母的是循环有序的。举个例子: 如果目标字母 target = ‘z’ 并且有序数组为 letters = [‘a’, ‘b’],则答案返回 ‘a’。 如果目标字母 target = ‘n’ 并且有序数组为 letters = [‘m’, ‘z’, ‘c’...原创 2020-04-08 00:47:48 · 248 阅读 · 0 评论 -
【C++】贪心算法6--LeetCode665.非递减数列
题目: 给你一个长度为 n 的整数数组,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。 我们是这样定义一个非递减数列的: 对于数组中所有的 i (1 <= i < n),总满足 array[i] <= array[i + 1]。 示例 1: 输入: nums = [4,2,3] 输出: true 解释: 你可以通过把第一个4变成1来使得它成为一个非递减...原创 2020-04-06 23:16:48 · 233 阅读 · 0 评论 -
【C++】贪心算法7--LeetCode53.最大子序和
题目: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 思路: 这是一道动态规划题 执行用时和内存消耗: 解题代码: //只需提交maxSubArray()内部代码即可,main函数用来测试。 #inc...原创 2020-04-06 23:02:52 · 211 阅读 · 0 评论 -
【C++】贪心算法8--LeetCode763.划分字母区间
题目: 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。 示例 1: 输入: S = “ababcbacadefegdehijhklij” 输出: [9,7,8] 解释: 划分结果为 “ababcbaca”, “defegde”, “hijhklij”。 每个字母最多出现在一个片段中。 像 “ababc...原创 2020-04-06 22:51:10 · 250 阅读 · 0 评论