![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 80
runafterhit
good good study,day day up
展开
-
c++基础语法命令(C程序员刷leetcode)
文章目录输入输出cout cin基础类型及操作容器vector(类似数组)定义 vector <类型> 变量名访问方式 用a[i]下标访问 用迭代器iterator访问常用操作 size成员个数、empty判空、push_back新增元素、pop_back去掉元素、clear 清空字符串string定义 string常用操作 empty判空、length\size长度、insert插入、substr子串、replace替换、append追加常用通用函数比较大小 max(a, b) / min(a原创 2021-03-24 22:03:08 · 452 阅读 · 0 评论 -
简图记录-基础算法地图
构建自己的算法地图,是用于逐个算法持续学习,复习记忆。后续学习过程会持续刷新,整理思路和总结笔记。原创 2020-05-21 23:49:56 · 205 阅读 · 0 评论 -
简图记录-算法复杂度分析
一、概念1、算法执行效率主要从 执行需要的时间(时间复杂度) 和 占用的存储空间(空间复杂度)分析 。方式主要有:事后统计法 和 事前分析法。2、事后统计法缺点需要执行程序进行统计,由于其影响因素过多,比如 机器的运行速度、编译的语言、编译产生的机器语言质量等,掩盖了 算法分析的本质。3、事前分析法概念撇开 硬软件因素,仅讨论算法本身的执行效率。算法本身 由 控制结构(顺序、分支、循环)和 原操作(指对固有数据类型操作)构成,两者综合影响了算法的执行效率。为了简化计算,算法的执行时间大致由一原创 2020-05-21 22:37:16 · 312 阅读 · 0 评论 -
简图记录-算法刷题练习建议与要点
近期在搞刷题练习,记录各类算法刷题练习建议总结一、算法刷题原则1、系统刷题,梳理框架不要零散的刷题,无组织碎片的学习。一定要有一个算法架构,可以参考leetcode分类和各种建议算法分类图,然后自己持续改进 构建自己的算法地图。2、多做总结,多记笔记笔记主要是用于复习记忆,不需要多详细,甚至可以用关键字记录。记录内容:1、关键点 2、算法思路和技巧 3、自己卡住或者出问题的地方3、勤于复习,长期记忆要多复习自己的笔记,结合算法地图反复记忆。一天几分钟快速记忆。一周或者两周 系统复习一次。参原创 2020-05-20 00:51:21 · 541 阅读 · 0 评论 -
算法基础 典型题(九)动态规划
记录算法基础题思路step1:爬楼梯:https://leetcode-cn.com/problems/climbing-stairs/solution/pa-lou-ti-by-leetcode/public: int climbStairs(int n) { /* 动态规划 第 i 阶 的 方法数量 = 第 i - 1 方法数量(走一步) + 第 i - 2 阶方法数量(走两步) dp[i]=dp[i-1]+dp[i-2] */原创 2020-05-10 02:08:03 · 245 阅读 · 0 评论 -
算法基础 典型题(八)搜索
记录算法基础题思路:step1:岛屿数量:https://leetcode-cn.com/problems/number-of-islands/public: int numIslands(vector<vector<char>>& grid) { /* 核心算法在于设计出算法从图中任何一个点出发, 探索出地图该岛屿的全部土地,并标记(宽度或深度搜索))。 遍历一次地图,如果为陆地,且未被mark就开始探索*原创 2020-05-08 23:29:38 · 196 阅读 · 0 评论 -
算法基础 典型题(七)哈希表 与 字符串
记录算法基础题思路:step1最长回文长度:https://leetcode-cn.com/problems/longest-palindrome/submissions/ int longestPalindrome(string s) { /* 利用hash表统计全部字符数量,然后遍历每一个字符 如果为偶数length+=count,...原创 2020-05-03 02:22:59 · 284 阅读 · 0 评论 -
算法基础 典型题(六)二分搜索 与 二分查找树
记录算法基础题思路:step1插入位置查找:https://leetcode-cn.com/problems/search-insert-position/submissions/ int searchInsert(vector<int>& nums, int target) { /* 二分查找方法改造, 适用不存在场景 */ ...原创 2020-05-02 17:59:03 · 282 阅读 · 0 评论 -
算法基础 典型题(五)二叉树与图
记录算法基础题思路:step1:求路径之和二:https://leetcode-cn.com/problems/path-sum-ii/ /* 利用一个数组记录前序遍历过程路径每个值,并用sum记录路径和,在遍历到叶子节点的时候校验 */ vector<vector<int>> pathSum(TreeNode* root, int sum) {...原创 2020-04-25 11:04:48 · 194 阅读 · 0 评论 -
算法基础 典型题(四)递归,回溯,分治
记录算法基础题思路:step1:求子集(无重复元素):https://leetcode-cn.com/problems/subsets/submissions/ vector<vector<int>> subsets(vector<int>& nums) { /* 回溯法 */ vector<ve...原创 2020-04-15 23:20:22 · 164 阅读 · 0 评论 -
算法基础 典型题(三)贪心算法
记录算法基础题思路:step1:分糖果:https://leetcode-cn.com/problems/assign-cookies/submissions/ int findContentChildren(vector<int>& g, vector<int>& s) { /* 优先选择最小需求的孩子,使用最小满...原创 2020-04-08 00:06:26 · 245 阅读 · 0 评论 -
算法基础 典型题(一)栈/队列/堆
记录算法基础题思路:step1:队列实现栈:https://leetcode-cn.com/problems/implement-stack-using-queues/ /** Push element x onto stack. */ void push(int x) { unsigned int size = que.size(); ...原创 2020-04-05 22:01:51 · 237 阅读 · 0 评论 -
算法基础 典型题(二)链表
记录算法基础题思路:step1:链表逆序:https://leetcode-cn.com/problems/reverse-linked-list/ ListNode* reverseList(ListNode* head) { ListNode *new_head = NULL; while (head != NULL) { ...原创 2020-04-05 21:56:22 · 185 阅读 · 0 评论 -
简图记录-数据结构与算法 树(C 语言实现)
一、概念1、树的定义树:是一种描述一对多的数据类型。树Tree由n(>=0)个节点组成的有限集合,n=0表示空树,n>0时有且仅有一个节点为根结点root,其余节点可以分为m个互不相交的树,称为根的子树。相关概念:度,叶子节点,根节点,父节点,子节点,深度,高度。有序树与无序树:有序树,各个节点子树必须按照一定次序从左到有排列,次序不能随意变化。否则为无序树。2、树的基本运...原创 2019-07-28 22:23:50 · 343 阅读 · 0 评论 -
简图记录-数据结构和算法 之 排序(C语言实现)
简图记录学习~一、概念: 排序:将有n个记录的数据元素集合进行排序,使其记录的某个关键字满足递增或则递减的序列; 排序的稳定性:如果排序后关键字大小相同的记录和排序前顺序一样,称为稳定排序。 排序算法的性能要素:1、时间复杂度 2、空间复杂读 3、算法复杂性排序名排序类型稳定性时间复杂度空间复杂度选择参考冒泡排序交换排序稳定差:O(n^2) 平均:O(n^2) 最优:O(n)O(...原创 2018-03-25 22:03:16 · 229 阅读 · 0 评论