算法与数据结构
算法题解 数据结构
biningo-QAQ
这个作者很懒,什么都没留下…
展开
-
求子集——递归算法
递归算法是一个比较难理解的,但是又十分简洁的算法,你只要理解进去了,就一窍百通!加油 Boy下面来看最简单的递归例子 求一个集合的子集#include<iostream>using namespace std;//输入n个元素的集合a b c....// n=3 则集合为s={a,b,c} //n=7 则集合为s={a,b,c,d,e,f,h} //求子集 其中数...原创 2019-08-23 23:03:10 · 1402 阅读 · 0 评论 -
[LeetCode]-307. 区域和检索 - 数组可修改【线段树】
题目描述给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。 update(i, val) 函数可以通过将下标为 i 的数值更新为 val,从而对数列进行修改。 示例: Given nums = [1, 3, 5] sumRange(0, 2) -> 9 ...原创 2019-08-11 20:49:00 · 167 阅读 · 0 评论 -
[LeetCode]-303. 区域和检索 - 数组不可变
题目描述:给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。示例:给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()sumRange(0, 2) -> 1sumRange(2, 5) -> -1sumRange(0, 5) -> -3说明:你可...原创 2019-08-01 21:39:06 · 162 阅读 · 0 评论 -
快速排序
void qsort(int a[],int left,int right){ int i=left,j=right; int mid = a[left]; while(i<j) { while(i<j && a[j]>=mid) //从右边 找到第一个比支点小的数 --j; while(i<j && a[i...原创 2019-04-23 20:54:55 · 138 阅读 · 0 评论 -
广搜解决最短路径
#include<iostream>/**这里自己实现一个队列 **/using namespace std;void bfs(); // 广搜 void out(); //打印函数 int tu[9][9]= { // 邻接矩阵 0代表通 1代表不通 abcdefg用12345678表示 {0,0,0,0,0,0,0,0,0}, {...原创 2019-04-09 19:45:48 · 736 阅读 · 0 评论 -
离散数学------排列组合
圆周排列: a、c、d、e 四个人做一个圆桌上,求不同的排列数这就是典型的圆周排列,abcd dabc cdab bcda 这四种情况其实是同一种情况 为什么呢? 因为在一个圆桌上,假如凳子会转动,那么不管凳子怎么转 ,其实他们的相对位置还是一样的!!所以圆周排列数应该是全排列数除排列人数这题答案就是4! / 4 因为每个人的排列都会重复4次 ...原创 2019-04-04 17:02:57 · 1290 阅读 · 0 评论 -
迷宫问题
#include <iostream> #include <stack> //基于深度优先搜索 回溯 栈 using namespace std;struct position{ int row; int col; position() { row=col=0; }};bool findPath(){ stack<posi...原创 2019-04-02 20:36:31 · 146 阅读 · 0 评论 -
堆排序---c++
//时间复杂度 nlog2(n)#include <iostream>using namespace std; void keepHeap(int data[], int heapsize, int k) //平衡堆{ int left = 2*k+1; //左孩子 int right = 2*k+2; //右孩子比左孩子多1 in...原创 2019-04-01 22:27:15 · 123 阅读 · 0 评论