
数据结构与算法
数据结构与算法
Starry丶
FPGA从业人员,ICer
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
排序
目录一、排序算法(由小到大)1.1. 快速排序1.2. 冒泡排序 一、排序算法(由小到大) 1.1. 快速排序 思路:找到一个基准元素,将所有>该元素放在一侧,<该元素放在另一侧,然后在针对两侧元素作递归。 void quicksort(vector<int> & nums,int start,int end) { if(start>=end) return; int i = start; int j = start - 1; while(i<end)原创 2021-01-05 16:44:29 · 150 阅读 · 0 评论 -
动态规划与贪婪算法
本文内容主要讲述动态规划解题的主要思路,但并不是解题步骤,具体问题还要具体分析,但是基本思路都是如此。 动态规划解题的一个标志就是题目具有重叠子问题的性质,因此动态规划是典型的空间换时间的算法设计技术。 自顶向下(递归+哈希) 依据动态规划重叠子问题的特性,在每次递归求解原问题时,都要重复的使用子问题的解,因此在每次求解成功之后,将解保存在一个哈希表中。之后再遇到相同的子问题时,直接查表即可。...原创 2019-09-26 11:41:13 · 758 阅读 · 0 评论 -
搜索
回溯算法的概念 解空间可以看成一个向量,向量的每个元素a[i]表示一个解的取值,或是一个步骤,确定所有的元素的取值a[i],i=0,1,…n-1,n 可以得到一个解,这样的问题可以用回溯算法来解决。 回溯算法本质是一种暴力解法,其实是不断尝试解是否可行,不可行就舍弃。 有时配合哈希表食用更佳。 递归框架如下 void backtrack(int i,int n,...){ if(i==n) {...原创 2019-09-24 10:04:32 · 285 阅读 · 0 评论 -
查找
二分搜索需要先排序,排序之后可以利用如下框架。该框架比较好理解,因为搜索区间为闭区间,即每个元素都必能搜索到,因此非常好记忆。 while(left<=right) { mid=(left+right)/2; if(nums[mid]>target) { ...原创 2019-09-20 17:04:50 · 174 阅读 · 0 评论 -
数学
基础知识 a & 1=1 则a为奇数, a & 1=0,则a为偶数 a>>1 <=> a/2; a<<1 <=> a*2; 异或性质: 交换律 a ^ b=b ^ a; 结合律 a ^ (b ^ c)=(a ^ b) ^ c=b ^ (a ^ c); 特别的 a^0=a a^a=0 a ^ a ^ a=a a ^ b ^...原创 2019-09-24 10:28:28 · 201 阅读 · 0 评论 -
数据结构
柱状图中最大的矩形 思路:单调栈,题解可以参考https://blog.youkuaiyun.com/Zolewit/article/details/88863970原创 2019-09-23 20:58:50 · 333 阅读 · 0 评论