![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
zgscsed
这个作者很懒,什么都没留下…
展开
-
常用的排序算法
常用的排序算法总结 冒泡排序 冒泡排序,每次遍历都把最大元素(也可以是最小元素)放到无序数组的最后面。 冒泡排序是一个稳定的排序算法。 时间复杂度计算: 最优情况下,已经排好序了,只需双层循环,n*(n-1)/2 。是O( n^2 ); 最坏情况,元素是逆序,每次遍历都要3次交换, 3n*(n-1)/2。是O( n^2 ); void bubbleSort(std::vector<int>& arr) { int len = arr.size(); for (int i = 0; i原创 2020-07-24 21:05:39 · 120 阅读 · 0 评论 -
leetcode题库124-- 二叉树中的最大路径和
给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。、 思路: 这道题,首先要正确理解题目意思。返回一个最大路径和,很容易想到用递归地方法,将子节点的路径和求出,加上自身就是该节点为根的路径和。题目的要求是从任意节点出发,而不是子树的根节点出发,因此要将左右子树的路径和都加上才符合题意。 当然,计算中需要判断左右子树路径和加自身节点值是否变小(也就是子树路径小于1) int sum_max =INT_MIN;原创 2020-06-22 08:57:59 · 376 阅读 · 0 评论 -
leetcode题库221-- 最大正方形
在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出: 4 思路 问题要找到最大全为1的正方形。p(i,j)点为右下角的正方形,计算全为1的正方形的边长。很明显与p(i-1, j), p(i-1, j-1), p(i, j-1)三个点有关。 p(i,j) = 三个点中的最小值加1.。画个图更好理解。 int maximalSquare(vector<vecto原创 2020-05-08 17:36:52 · 122 阅读 · 0 评论 -
leetcode题库5-- 最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" 思路 动态规划: 主要是要状态转移方程 P(i,j)=(P(i+1,j−1)&&S[i]==S[j]),其中由于p(i,j)之前要知道p(i+1...原创 2020-05-01 17:01:22 · 189 阅读 · 0 评论 -
leetcode题库6-- Z 字形变换
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。 请你实现这个将字符串进行指定行数变换的函数: s...原创 2020-05-01 12:32:14 · 171 阅读 · 0 评论 -
leetcode题库522 --最长特殊序列 II
给定字符串列表,你需要从它们中找出最长的特殊序列。最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列)。 子序列可以通过删去字符串中的某些字符实现,但不能改变剩余字符的相对顺序。空序列为所有字符串的子序列,任何字符串为其自身的子序列。 输入将是一个字符串列表,输出是最长特殊序列的长度。如果最长特殊序列不存在,返回 -1 。 示例: 输入: “aba”, “cdc”,...原创 2020-04-29 20:20:35 · 246 阅读 · 0 评论 -
leetcode题库11--盛最多水的容器
给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 int maxArea(vector<int>& height) { ...原创 2020-04-27 15:56:21 · 113 阅读 · 0 评论 -
leetcode题库1--两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 思路: 遍历数组时,在前...原创 2020-04-27 15:22:37 · 137 阅读 · 0 评论 -
leetcode题库283-- 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 思路: 使用两个数组,将原数组的不为0的数据依次保存在新的数组中。 这里要求在原数组上操作,就用两个索引来表示两个数组。 一个是遍历数组的索引 i, 一个...原创 2020-04-26 20:29:32 · 99 阅读 · 0 评论 -
动态规划
0-1背包问题 简要说下动态规划:通常用来求解最优化问题,通过组合子问题的解来求得原问题的解。动态规划求解要有两个要素:最优子结构和子问题重叠。(暂时不太理解) 使用背包问题 这里就是0-1背包问题。有一堆物品m,重量w,价值v,背包容量c。 递推式: 1) j<w(i) V(i,j)=V(i-1,j) //i指i个物品,j是容量 2) j>=w(i) ...原创 2018-09-04 22:06:11 · 119 阅读 · 0 评论 -
字符串
3. 无重复字符的最长子串 给定一个字符串,找出不含有重复字符的 最长子串 的长度。 示例: 给定 “abcabcbb” ,没有重复字符的最长子串是 “abc” ,那么长度就是3。 给定 “bbbbb” ,最长的子串就是 “b” ,长度是1。 给定 “pwwkew” ,最长子串是 “wke” ,长度是3。请注意答案必须是一个子串,”pwke” 是 子序列 而不是子串。 class ...原创 2018-05-06 22:47:39 · 179 阅读 · 0 评论 -
数组
11. 盛最多水的容器 给定 n 个正整数 a1,a2,…,an,其中每个点的坐标用(i, ai)表示。 画 n 条直线,使得线 i 的两个端点处于(i,ai)和(i,0)处。请找出其中的两条直线,使得他们与 X 轴形成的容器能够装最多的水。 注意:你不能倾斜容器,n 至少是2。 class Solution { public: int maxArea(vector&amp;lt;int...原创 2018-05-06 22:42:43 · 118 阅读 · 0 评论