基本算法
文章平均质量分 70
heart_6662
人生舞台的大幕随时都可能拉开,关键是你愿意表演,还是选择躲避
展开
-
【打卡】——【LeetCode学习计划】《数据结构入门-C++》第10天 树
原文链接;【LeetCode学习计划】《数据结构入门-C++》第10天 树_Wang_Xin_Ling的博客-CSDN博客方法1:递归树的遍历过程中,在进入到左孩子和右孩子后,还需要按照同样的遍历顺序去遍历,直到遍历整棵树,因此遍历的过程是一个非常典型的递归过程。144. 二叉树的前序遍历#include <vector>using namespace std;class Solution{public: vector<int&g...原创 2021-12-19 20:54:57 · 132 阅读 · 0 评论 -
【打卡】——【LeetCode学习计划】《数据结构入门-C++》第9天 栈 / 队列
原文链接:【LeetCode学习计划】《数据结构入门-C++》第9天 栈 / 队列_Wang_Xin_Ling的博客-CSDN博客20. 有效的括号LeetCode: 20. 有效的括号给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。方法1:栈栈的基本知识数据结构——栈的详解_ACfun-CSDN博客_数据结构栈我们可以先跳..原创 2021-12-16 21:50:33 · 1323 阅读 · 0 评论 -
【打卡】——【LeetCode学习计划】《数据结构入门-C++》第8天 链表
目录原文链接:【LeetCode学习计划】《数据结构入门-C++》第8天 链表_Wang_Xin_Ling的博客-CSDN博客83. 删除排序链表中的重复元素LeetCode: 83. 删除排序链表中的重复元素方法1:迭代动画演示具体代码206. 反转链表LeetCode: 206. 反转链表原文链接:【LeetCode学习计划】《数据结构入门-C++》第8天 链表_Wang_Xin_Ling的博客-CSDN博客83. 删除排序链表中的重复元素LeetCode:..原创 2021-12-15 08:16:17 · 429 阅读 · 1 评论 -
【打卡】——【LeetCode学习计划】《数据结构入门-C++》第7天 链表 补充
上一篇文章:【打卡】——【LeetCode学习计划】《数据结构入门-C++》第7天 链表_heart_6662的博客-CSDN博客原文链接:【LeetCode学习计划】《数据结构入门-C++》第7天 链表_Wang_Xin_Ling的博客-CSDN博客203. 移除链表元素LeetCode: 203. 移除链表元素给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。方法1:迭代本体就是正常.原创 2021-12-14 16:31:43 · 1030 阅读 · 1 评论 -
【打卡】——【LeetCode学习计划】《数据结构入门-C++》第7天 链表
原文链接:【LeetCode学习计划】《数据结构入门-C++》第7天 链表_Wang_Xin_Ling的博客-CSDN博客目录141. 环形链表LeetCode: 141. 环形链表分析:方法一:哈希表方法二: 快慢指针21. 合并两个有序链表LeetCode方法:递归方法1优化就如同我们在【LeetCode学习计划】《算法-入门-C++》第8天 广度优先搜索 / 深度优先搜索中提到的问题一样,新链表的所有结点都是l1和l2的结点,如果l1或l2被释放了,那么..原创 2021-12-14 16:02:25 · 1168 阅读 · 0 评论 -
基本算法——堆排序——python实现
目录知识积累:具体:第一步:建堆第二步:主体第三步:验证第四步: 将堆释放完整代码:知识积累:具体:第一步:建堆具体思路看注解我们要大根堆大的在上面def sift(li,low,hight): ''' li ; 列表 low : 根节点的位置 hight : 堆最后一个元素的位置 return ''' i = low j = 2*i +1 ...原创 2021-12-12 22:31:14 · 750 阅读 · 0 评论 -
【打卡】——【LeetCode学习计划】《数据结构入门-C++》第6天 字符串
387. 字符串中的第一个唯一字符LeetCode: 387. 字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1因为假定只含小写字母方法1:哈希表我们可以在第一次遍历字符串时,按字符的出现顺序存储字符,并计数。最后,再从头遍历一遍字符串,对每个字符在哈希表中的值进行判断。若计数为1,即为我们的目标。解析unordered_map<char,int> hashtable创建一个名为h...原创 2021-12-12 12:56:04 · 897 阅读 · 0 评论 -
【打卡】【LeetCode学习计划】《数据结构入门-C++》第5天 数组
原文链接:【LeetCode学习计划】《数据结构入门-C++》第5天 数组_Wang_Xin_Ling的博客-CSDN博客目录36. 有效的数独LeetCode: 36. 有效的数独方法:哈希表73. 矩阵置零LeetCode: 73. 矩阵置零方法1:使用标记数组方法2:使用2个标记变量36. 有效的数独LeetCode: 36. 有效的数独请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。1.原创 2021-12-11 13:31:03 · 645 阅读 · 0 评论 -
【打卡】【LeetCode学习计划】《数据结构入门-C++》第4天 数组
原文链接:【LeetCode学习计划】《数据结构入门-C++》第4天 数组_Wang_Xin_Ling的博客-CSDN博客目录566. 重塑矩阵LeetCode: 566. 重塑矩阵方法;一维数组118. 杨辉三角LeetCode: 118. 杨辉三角方法:定义法566. 重塑矩阵LeetCode: 566. 重塑矩阵在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始.原创 2021-12-11 11:43:06 · 146 阅读 · 0 评论 -
【打卡】【LeetCode学习计划】《数据结构入门-C++》第3天 数组
原文链接;【LeetCode学习计划】《数据结构入门-C++》第3天 数组_Wang_Xin_Ling的博客-CSDN博客目录350. 两个数组的交集 IILeetCode: 350. 两个数组的交集 II方法1:哈希表法2:排序 + 双指针21. 买卖股票的最佳时机LeetCode: 121. 买卖股票的最佳时机方法1:动态规划 + 滑动数组350. 两个数组的交集 IILeetCode: 350. 两个数组的交集 II题目:给你两个整数数组 nums1 和 n.原创 2021-12-10 23:10:39 · 399 阅读 · 0 评论 -
打卡——【LeetCode学习计划】《数据结构入门-C++》第2天 数组
原文链接;【LeetCode学习计划】《数据结构入门-C++》第2天 数组_Wang_Xin_Ling的博客-CSDN博客目录1. 两数之和LeetCode: 1. 两数之和方法一:暴力破解方法2:哈希表方法1中时间复杂度较高的原因是内层寻找target-x的复杂度较高,主要是思路:88. 合并两个有序数组LeetCode: 88. 合并两个有序数组方法1:合并后排序方法2:双指针方法3:逆向双指针1. 两数之和LeetCode: 1. 两数之和题目:.原创 2021-12-08 21:37:30 · 1231 阅读 · 1 评论 -
打卡 ——【LeetCode学习计划】《数据结构入门-C++》第1天 数组
目录217. 存在重复元素LeetCode: 217. 存在重复元素方法一:方法二:哈希表53. 最大子序和LeetCode: 53. 最大子序和217. 存在重复元素LeetCode: 217. 存在重复元素题目:给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。方法一:对数组进行排序之后,相等的元素就会相邻。因此判断相邻的两个元素是否相等即可cla..原创 2021-12-06 16:02:09 · 1210 阅读 · 0 评论 -
打卡——【LeetCode学习计划】《算法-入门-C++》第6天 滑动窗口
本文为打卡文章学习笔记;原文链接https://blog.csdn.net/Wang_Xin_Ling/article/details/121438776目录3. 无重复字符的最长子串LeetCode567. 字符串的排列LeetCode3. 无重复字符的最长子串LeetCode题目:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。我的分析:刚刚学到滑动窗口方法滑动窗口可以看做每次确定一段值的双指针。这有个红的窗口往右走,左边的去掉原创 2021-12-06 14:43:37 · 518 阅读 · 0 评论 -
《算法-入门-C++》第3天 双指针C++
283. 移动零LeetCode给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。原创 2021-12-05 23:55:30 · 489 阅读 · 0 评论 -
《算法-入门-C++》第2天 双指针
目录977. 有序数组的平方[LeetCode]方法一:暴力解法方法二:双指针189. 轮转数组LeetCode三次翻转大佬写法:我的写法:977. 有序数组的平方[LeetCode]题目:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序方法一:暴力解法for循环加快速排序class Solution {public: vector<int> s...原创 2021-12-02 10:58:28 · 766 阅读 · 0 评论 -
基本算法—快速排序—python实现
目录基本思路:第一步第二步:完整代码:基本思路:特点:快第一步实现将列表分成两部分""" CSDN : heart_6662PYTHON amateur """def partition(li,left,right): tmp = li[left] while left < right: while left < right and li[right] >= tmp: rig...原创 2021-11-29 16:17:16 · 453 阅读 · 0 评论 -
基本算法—插入排序—python实现
就像扑克牌整理牌时一样思路:1. 将待排序列表的第一个元素当做已排序序列,第二个元素到列表最后一个元素当成未排序序列。2. 取未排序序列中的第一个数据,插入到已排序序列中顺序正确的位置(就是在已经排好进行比较)对前面的解析<<<<------将未排序的第一个数据与相邻的前一个数据(已排序序列的最后一个数)据进行比较,如果顺序错误则交换位置,交换位置后继续与相邻的前一个数据进行比较,直到不需要交换则插入完成。每次插入数据后,已排序序列都是排好序的。3. ...原创 2021-11-29 14:28:17 · 353 阅读 · 1 评论 -
基本算法—选择排序—python实现
目录算法思想:1.在未排序序列中找到最小(大)元素,存放到排序序列的开始位置2.从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾(即为未排序的开始)3.以此类推,直到所有元素均排序完毕注释很详细的讲解为什么这样操作我们来分步看看选择排序法(以从小到大排序为例)算法思想:1.在未排序序列中找到最小(大)元素,存放到排序序列的开始位置2.从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾(即为未排序的开始)3.以此类推,直到所有元素均排序完毕...原创 2021-11-21 16:10:13 · 493 阅读 · 0 评论 -
二分查找—c++实现
因为我之前写过python二分查找,直接上代码大佬文章在这#include <vector>using namespace std;class Solution{public: int search(vector<int> &n, int target) { for (int left = 0, right = n.size() - 1; left <= right;) { int原创 2021-11-21 00:14:55 · 476 阅读 · 0 评论 -
基本算法——冒泡排序——python实现
冒泡排序原创 2021-11-20 17:43:06 · 690 阅读 · 0 评论 -
基本算法——二分查找——python实现
二分查找原创 2021-11-19 18:25:20 · 791 阅读 · 3 评论