
数据结构
靠谱的大钊
没啥写, 就这样
展开
-
LC011-盛最多水的容器
盛最多水的容器给你 n 个非负整数 a1,a2,...,a``n,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。**说明:**你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。原创 2020-11-03 16:38:13 · 203 阅读 · 0 评论 -
LC005-最长回文子串
5. 最长回文子串难度中等2852给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"方法一:暴力匹配法思路分析:根据回文子串的定义,美剧所有长度大于等于2的长度,依次判断他们是否是回文只针对当前得到的最长回文子串长度的子串进行"回文验证".在记录最长回文子串的时候,可以只记录“当前子串的起始位置”和“子原创 2020-10-30 18:16:48 · 205 阅读 · 0 评论 -
LC004-寻找两个正序数组的中位数
寻找两个正序数组的中位数难度困难3335给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。**进阶:**你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗?示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组原创 2020-10-23 15:03:22 · 205 阅读 · 0 评论 -
LC283-移动零
移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。最优解法class Solution { public void moveZeroes(int[] nums) { for(int i = 0,j = 0; i < nums.length; i++ ){原创 2020-10-21 14:04:37 · 297 阅读 · 0 评论 -
算法-常用10种算法005-贪心算法(详细图解,附代码)
贪心算法目录贪心算法贪心算法介绍贪心算法最佳应用-集合覆盖思路:使用贪心算法,效率高:分析的图解代码分析核心代码贪心算法注意事项和细节完整代码贪心算法介绍贪心算法(贪婪算法)是指对问题进行求解时,**在每一步种都采用最好或者最优(最有利)的选择,**而希望能够导致结果最好或者最优的算法.贪心算法所得到的结果不一定时最优的结果(有时候是最优解),但是都是相对近似(接近)最优的结果.贪心算法最佳应用-集合覆盖假设存在如下表的需要付费的广播台, 以及广播台信号可以覆盖的地区。 如何选择最少的广播原创 2020-10-19 00:16:51 · 2744 阅读 · 0 评论 -
算法-常用10种算法004-KMP算法
KMP 算法应用场景-字符串匹配问题字符串匹配问题:有一个字符串 str1=“BBCABCDABABCDABCDABDE”,和一个子串 str2=“ABCDABD”现在要判断 str1 是否含有 str2, 如果存在,就返回第一次出现的位置, 如果没有,则返回-1暴力匹配算法如果用暴力匹配的思路,并假设现在 str1 匹配到 i 位置,子串 str2 匹配到 j 位置,则有: 1.如果当前字符匹配成功(即str1[i]==str2[j]),则i++,j++,继续匹配下一个字符2.如果原创 2020-10-13 19:51:24 · 276 阅读 · 0 评论 -
图的拓扑排序的算法实现,C语言,栈,超详细版本
数据结构课程设计 设计说明书图的拓扑排序的算法实现设计内容:拓扑排序在工程管理领域中的应用广泛,可用于判断工程能否顺利开展,即判断有向图中是否存在回路。对于一个有向图,先由键盘输入其顶点和弧的信息,采用恰当存储结构保存该有向图后,依据拓扑排序算法思想输出其相应的顶点拓扑有序序列,并提示用户是否存在回路。设计要求:1)问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题...原创 2020-01-03 12:31:37 · 4132 阅读 · 3 评论 -
c语言 队列定义.顺序队列,循环队列,链队列结构(详细的)
1.顺序队列的常用基本操作及条件判断队空: Q.front=Q.rear 队满: Q.rear=Maxlen 求队长: Q.rear-Q.front入队: 1)新元素按 rear 指示位置加入2)rear = rear + 1队尾指针加一出队: 1)将front指示的元素取出。2)front = front + 1队头指针加一2.顺序队列的类型定义#define ...原创 2019-04-10 00:29:15 · 2506 阅读 · 0 评论