
数据结构与算法
文章平均质量分 81
xchen-lol
这个作者很懒,什么都没留下…
展开
-
2016.3.31 蘑菇街笔试编程题2
有4个瓶子,其容积分别为 10 ,6,5,4初始状态为 10,0,0,0现给出一个目标状态obj,问最少经过几部可以到达目标状态。(注:每次倒水只能将自己倒空或将别杯倒满!)############################################ 4个瓶子倒水问题BFS 2016.4.4# 由一个状态list s可以到达的下一个状态的集合def changeto原创 2016-04-04 21:14:33 · 354 阅读 · 0 评论 -
最大子数组问题及其变形
最大子数组问题:############################################ 最大非空子数组 2016.4.4##test = [0,-2,3,5,-1,2]test = [-1,-2,-3,-5,-1,-2]def maxsubarray(test): # 无法处理全负数的情况 curmax = 0 allmax = 0 for x原创 2016-04-04 20:07:05 · 500 阅读 · 0 评论 -
2016.4.3 腾讯实习生笔试编程题解
############################################ 打印蛇形矩阵 2016.4.3# 2016.4.3 腾讯笔试题编程1(稍微耐心点就行)def snake(n): mat = [[0]*n for i in range(n)] w,s,a,d = 0,n,0,n num = 0 flag = 'left' whi原创 2016-04-04 19:54:49 · 417 阅读 · 0 评论 -
算法复习-归并、快排、插入、堆-c++实现
1、归并排序:时间最差o(nlogn) 空间O(n),稳定排序,算法表现也很稳定void merge(int list[], int s, int mid, int e){ int n1 = mid-s; int n2 = e-mid; int *list1= new int[n1+1]; int *list2= new int[n2+1]; // 将前半部分和后半部分分别赋给数组l原创 2016-04-09 13:41:44 · 295 阅读 · 0 评论 -
算法复习-红黑树-c++实现
#pragma once#include "my_sorting.h"#include class RBTree{private: struct TreeNode { int val; char color; TreeNode* left; TreeNode* right; TreeNode* fa; TreeNode(int v): val(v), le原创 2016-04-09 15:15:41 · 271 阅读 · 0 评论 -
算法复习-二叉搜索树BST的c++实现
#include "my_sorting.h"class BST{private: struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode* fa; TreeNode(int v): val(v), left(0), right(0), fa(0){} ~TreeNode(){co原创 2016-04-08 23:16:56 · 413 阅读 · 0 评论 -
求数组逆序对个数
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数class Solution {public: int InversePairs(vector data) { return mergesort(data,0,(int)data.size()); } int原创 2016-04-09 20:39:18 · 1745 阅读 · 0 评论 -
2016.5.30 jd算法面试题
# encoding=utf-8# 2016.5.30 jd算法面试题# 问题描述:# 给出一张手机号码表# 1 2 3# 4 5 6# 7 8 9# 0# 从1开始,每次只能往右、往下走一格、或者不走# 走到了某一格上可以选择按或者不按# 现在给出一个数字,判断该数字能否通过以上方式得到# 可以则返回数字本身# 不行则返回比该数字小的数中的最大数# exam原创 2016-05-30 18:33:34 · 1006 阅读 · 0 评论 -
bloomfilter 原理及实现
参考文章:http://blog.youkuaiyun.com/u013402746/article/details/28414901原理:使用一组hash函数将key映射为一组整数(如3、5、10),再将一个大的bit数组的相应位置置1最终使用这个bit数组作为keys的集合查询时:对输入x进行同样的一组hash,假设结果为3、5、10,则查看bit数组的相应位置,若都为1,则说明x原创 2016-09-03 16:10:13 · 552 阅读 · 0 评论