算法基础
文章平均质量分 66
JordanInShenzhen
这个作者很懒,什么都没留下…
展开
-
算法基础--双指针
前面已经写了两篇关于算法方面的文章,这几天想了下,决定把这个算法整理成一个系列,除了是帮助自己巩固算法知识外,还能够把自己总结的每种算法的套路保存下来并分享给大家,这样以后即使是哪天想要重拾起来,也是能够根据这些算法套路快速重拾。那么好,这道题可能很多小伙伴会说太简单了,如果双指针只有这水平,那大家都可以洗洗睡了,还在算法的题海里面挣扎个什么劲。但是现在嘛,首尾指针给它安排上,两个指针指向的数值,比较小的往对方靠拢(为什么这样自己去想想),记录一个最大值,不断刷新满足条件的值,直到两个指针相遇,结束。原创 2023-12-03 23:41:40 · 1046 阅读 · 0 评论 -
算法基础(栈)--移除无效的括号
题目来源于Leetcode 1249:移除无效的括号,题目描述如下:给你一个由 '('、')' 和小写字母组成的字符串 s。你需要从字符串中删除最少数目的 '(' 或者 ')'(可以删除任意位置的括号),使得剩下的「括号字符串」有效,请返回任意一个合法字符串。有效「括号字符串」应当符合以下任意一条要求:空字符串或只包含小写字母的字符串可以被写作AB(A连接B)的字符串,其中A和B都是有效「括号字符串」可以被写作(A)的字符串,其中A是一个有效的「括号字符串」...原创 2021-02-24 00:00:17 · 238 阅读 · 0 评论 -
算法基础-旋转有序数组的二分搜索
要求 给定一个没有重复元素的旋转数组(它对应的原数组是有序的),求给定元素在旋转数组内的下标(不存在的返回-1),要求算法时间复杂度越小越好。函数定义:int Search(int[] nums, int target)例子:有序数组{0,1,2,3,4,5,6,7}对应的旋转数组为{3,4,5,6,7,0,1,2}(左旋、右旋效果相同)。查找元素5,返回结果2; 查找元素8,返回结果-1。分析:可以轻易地想到遍历一遍O(n)时间可以得到结果,但是并不是最好的结果;利用有序的特点,原创 2021-02-23 01:00:25 · 165 阅读 · 0 评论