#include <iostream> using namespace std; void print(int data[],int len); void quick_sort(int data[],int …
分类:算法
二叉树层级遍历之每层最后一个值
原题是说站在二叉树的右侧,从根到叶能看到的节点,也就是说同层右边的节点能挡住同层左边的节点。这个问题,基于层级遍历二叉树的基础来做即可,用代理模式新建一个类别包装TreeNode节点,添加属性level,根为0,孩子节点…
几种加密方式
几种加密方式 1 Base64加密方式(可逆) Base64中的可打印字符包括字母A-Z/a-z/数组0-9/ 加号’+’斜杠’/’ 这样共有62个字符 Base64 ios7之后加入系统库 2 MD5加密 Messag…
将二叉搜索树转换成双向链表
#include <iostream> #include <vector> using namespace std; struct node{ int data; node* lchild; no…
理解冒泡排序和插入排序
我们还是用揭扑克牌来理解这两种排序方法,我们需要从小到大来排序,假定最小的牌和最大的牌是未知的,那么对于冒泡排序来讲,过程就是揭起第一张牌,又揭起第二张牌,两张牌比较,留下小的,又揭第三张牌,再与手中的牌比较,以此……那…
随机算法求数组中第k大的
import java.util.Random; public class Find{ public int findK(int []array,int length,int k){ Random random=new …
【大渣】最长上升公共子序列
太坑了所以决定写下来= = 对于两个数列,我们要求他们的最长上升公共子序列该怎么求呢? 用Dp来做,我们很容易想到F[ i ][ j ]来表示A的前i项和B的前j项可以组成的最长上升公共子序列。 并且易得出转移方程: &…
C语言算法--选择排序
选择排序思想是: 每次选择数组中最小或者最大的数放在第一位,排序完成之后则该数组为有序状态 代码如下: #include<stdio.h> /** * 选择排序,本例从小到大排序 2018.07.05 **/…
LeetCode: linked list cycle I and II
Given a linked list, determine if it has a cycle in it. Follow up: Can you solve it without using extra space?…
如何不使用新变量进行两数互换
在学C++过程有一章节看到了一个内容:不使用第三变量就可以实现两数互换 当时我很疑惑是怎么做到的。看到了它用到了异或运算符 ^ 于是百度了下 看到了这位老哥的文章https://blog.csdn.net/z…
一个简单问题的并行算法
一个简单问题的并行算法 设一个数列S[N], 其中S[0] = 0; S[k] = S[k – 1] + k ( 1 对于这个问题的求解串行算法相当简单,O(N)时间复杂度,不再解释。 并行: 假设有 M 个…
名企面试算法题
转发:名企面试算法题,建议多看看严蔚敏老师的数据结构。。超级有用!!!!!!! 名企面试算法题