自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

richardzrc的博客搬家了--->richardzhang.info

但偏偏,风渐渐,把距离吹得好远

  • 博客(101)
  • 资源 (2)
  • 收藏
  • 关注

原创 remove ele when iterative hashmap

C++ 遍历hashmap时候删除元素是很痛苦的,Java有concurrent hashmap, C++auto : 似乎用不了,只能采用erase获取next iterator的方法,因此这种方法尽量加一个元素来标记元素是否删除更好,看到C++的不好地方了bool dfs(int i){ if(v[i]) return 0; v[i]=1; for(au

2015-08-30 21:28:30 815

原创 Alien Order

https://leetcode.com/problems/alien-dictionary/单词按照一定次序排序,推导出原始顺序,典型的toposort,非常好的题目和重要的算法。还是习惯炒肉说的基于indegree的bfs,学神的dfs总觉得别扭。当年老师教的静态链表太差了,太麻烦我写了两种写法,再生成图的时候,一种是从比较上下两个单词的第一次不同的单词来生

2015-08-30 20:15:44 713

原创 逻辑代码题

判断a2*b2 和 a3* b3 是否可以装入a1*b1逻辑代码基本功,漏考虑了一点,两种形状都要考虑,而不是如果大小符合第一种,就不考虑第二种形状了,导致WA了,也没有人hack我,估计hack了,也难想到错误int can(int a1, int b1, int a2, int b2){ return (a1<=a2 && b1<=b2) || (a

2015-07-23 08:11:01 769

原创 Leetcode新题

算一个数组里面k个元素的滑动窗口的最值单调队列 不同于单调栈单调队列模板题class Solution {public: vector maxSlidingWindow(vector& a, int k) { vector ans; int n=a.size(), i; deque> q; if(!k) retu

2015-07-23 00:41:21 552

原创 Basic Caculator

Basic caculator这题有几种思路,都不是很简单,这就是为啥计算机喜欢用波兰和你波兰,因为求值非常简单,已经体现了运算符优先级了。1. 运算符优先级表,非常麻烦,需要n*n的表格2. 用火车调度场算法将中缀边后缀,dijstra发明的,算法细节多,不容易写对3. 下面的算法,前提是只有+-()class Solution {public:

2015-07-21 21:37:50 623

原创 vector<string>

给定vector 判断是否是 可以首尾相连成一个环,相邻两个串的头和尾字符一样class Solution{ public: int n; vector v; vector vs_; unordered_map> um; bool Circle(vector vs){ int save=0; for(int

2015-07-20 23:39:50 824

原创 判断图是否是二分图

之前GCJ2014practice遇到过,当时推我google的liuchenheng大神说这个是最基础的题,如果不会,就别来面了。我还真不会,可见有多弱。然后EMC summer campus时遇到USTC的李晨讯,看到输入,我一看就知道这题,他说他也写了半天才A的。看来这种基础题需要熟练了,不仅要写出来,而且要快!https://code.google.com/co

2015-07-19 18:32:15 683

原创 刻录镜像

目测UltraISO软件不升级 导致Ubuntu14.04写入失败,只有EFI文件夹升级一下Ultraiso 就好了 我用universal installers似乎启动之后光标一直跳看来还是有时候需要升级软件

2015-07-12 23:41:37 613

原创 题目

Question 2. Find distance between two given keys of a Binary Tree, no parent pointers are given. Distance between two nodes is the minimum number of edges to be traversed to reach one node from other.

2015-07-07 00:12:04 570

原创 数据流的median

http://www.lintcode.com/en/problem/data-stream-median/数据流的中位数,两个优先队列,或者两个堆,题目定义是靠前的一个数为medianstruct Node1{ int val; bool operator<(Node1 n) const{ return val<n.val; }};stru

2015-07-06 23:54:47 560

原创 woodcut

http://www.lintcode.com/en/problem/wood-cut/#二分答案,贪心验证,具有单调性class Solution {public: /** *@param L: Given n pieces of wood with length L[i] *@param k: An integer *return

2015-07-06 22:28:02 1025

原创 power of two

power-of-twoclass Solution {public: bool isPowerOfTwo(int n) { return n>=1 && !(n&(n-1)); }};n=10000***000,  n&(n-1)=0是这个方法的核心

2015-07-06 21:00:09 1105 1

原创 Jump gameII

leetcode jump gameII看了题解,用BFS是比较好的思路,一层表示当前步能到的节点,curmax表示最远的,和贪心有异曲同工之妙class Solution {public: int jump(vector& a) { int n=a.size(); if(n<=1) return 0; int i=0, level

2015-07-01 09:00:00 756

原创 BST数据结构题

给定BST,修改BST,使得每个点都是大于他的结点的值之和关键是这题递归参数怎么设计,每个点比他大的有两快,一个是右子书(如果有的话),另一个是祖先里面比他大的,如果直接用这两个的话,找不到递归结构。应该设计第一个参数是祖先比他大的节点和,第二个参数是子树的和,包括自身。struct Node{ int val; Node* left, *right;};cla

2015-06-30 10:44:03 939 1

原创 学车走模拟考场

周五走了模拟考场,最后一遍通过,前三遍各种大问题。三个地方打方向,启动,侧方位出库,坡道定点。教练车加坐垫。先打灯。左拐。侧方位特别当心的是突起 对齐 箭头左端左侧1-2cm处,前面一个较难,因为需要突然拐弯调整,一定要更加慢速。注意右侧后视镜与白线30cm左右,川字形状。然后肩膀与蓝线白线对齐。同时还可以看左侧车门线与白线对齐。

2015-06-20 08:51:53 771

原创 科目二实践笔记

启动要打左转向灯(向下),防止跳转,左手按住,右手方向盘侧方位停车右转到侧方位停车(注意自己是抽签到哪个车队就是哪个车。这里面两个不是任意选,而是必须严格按照编号来。如果分到前面的话,就要提前准备好,对齐突起)车辆左右小修,指到突起对齐箭头左侧(这里如果是没有做垫,需要箭头左侧靠左l2cm, 然后车头过了箭头,)然后左侧看黄线,或者蓝线,对齐

2015-06-18 21:37:19 814

原创 hackerrank maxsum mod

https://www.hackerrank.com/challenges/maximise-sum/submissions/code/12028158hackerrank 子数组和模m的最大值时间复杂度nlgn, 主要是证明一点,presum[i]-presum[j] 对于0

2015-06-14 21:46:03 1033

原创 统计学习第一发

博神,著名机器学习专家,擅长各种优化问题,求导,内容包括三块:1. 统计学习问题2. 感知机3. SVM

2015-06-14 21:16:13 646 1

原创 算素因子种类数个个数的题目

素因子种类数:对于一个n,他的素因子总类数 有多少? Facebook Hackercup Round1 Homework题,10pts运用筛法,然后P[j]=i ->P[j]++int GetPrimeFactorTypeTimes(int n){ memset(P , 0, sizeof P); for(int i=2;2*i<=n;i++)

2015-06-14 01:13:11 1738

原创 最大子数组和新的解法-前缀和

今天看了曹博的动态规划视频,发现又有一种新的解法。算一个前缀和,presum[], 这是常有的空间优化时间,计算一个子数组和的常有方法然后维护一个sum[0...i-1]的最小值,然后和sum[i]减,就是以a[i-1]为尾元素的子数组和的最大值时间ON,空间O1class Solution {public: int maxSubA

2015-06-12 09:53:49 1168

原创 条件熵定义推导公式

http://ccckmit.wikidot.com/st:mutualinformation 这篇博客非常不错,深入浅出,李航的似乎 没有讲清楚

2015-06-09 16:20:09 10920 4

原创 SKWIC算法推导

2015-06-07 22:18:39 947

原创 二叉树路径和问题

今天回顾了一下二叉树给定sum的问题,逻辑还是有问题,本以为对的

2014-07-24 17:26:31 992 1

原创 July收集荷兰国旗问题之三路partition

这道题目和分成两块的partition的扩展,例如有一堆0 1 2 数字组成的数组,要分成 00 00  11 1 1  222 2这种顺序的。利用lumoto版的partition可以很好的解决,比hoare好多了,而且直接利用loop invariant,变成i j k三个指针,[low,i]=0 [i+1,j]=1, [j+1,k-1]=2, 里面如果新来2的话,直接k++,

2014-07-20 10:44:45 1709

原创 初始vector为空,那么push_back N次时间复杂度多少

总结:好像没有设置vector的capabilities的方法,都是系统自动分配的。所以如果一开始设置容量下的话,一直resize,搬元素效率很低。具体未必为两倍,如果当成两倍的话。题目解答:如果初始vector为空,那么push_back N次时间复杂度多少? 假设容量每次是之前两倍的扩充的话,实际我测VS2010好像不是两倍的,就拿1,2,3.。。10这么算,容量扩充序列是1,

2014-07-12 16:00:01 2772

原创 通俗理解TCP握手次数是三次?

理解之后,应该说是至少三次就可以保证可靠传输了。看到网上一篇帖子http://www.cnblogs.com/TechZi/archive/2011/10/18/2216751.html是这么说的,“我Google该问题答案后发现,网络上对于“三次握手”的过程都有很详细的描述,但对于为什么需要“三次握手”来建立连接却没有很好的答案。只能求助于书本了。”后面有谢希德树和另一本书的

2014-07-08 17:08:27 1485

原创 找唯一不出现三次而出现1次的数子O(n)位运算算法

之前两次那个是异或运算处理,这次以为也是类似,但是没想出来。高富帅想出来了算法,转为bitset,然后加起来 相同的话 要么0+0+0 要么1+1+1,最后剩下的 可以通过%3 算出0 或1,思想是这样,其实也是bit运算,只不过不是异或这种一次运算O(1)这种,但是由于输入是int数组,-2^31~2^31-1 所以用32bit就可以表示了。之前遇到,过几次错误,包括分配存储

2014-07-06 20:46:55 1381

原创 linklist Qsort

后来再看题目发现要求是常数空间复杂度,但是实际上void qsort(ListNode* low, ListNode* high){ if(low==high || (high!=NULL&&high->next==low)) return; else { int x=0; ListNode *p=new ListNode(x); p->next=lo

2014-07-04 00:59:15 884

原创 Linklist O(nlogn) sort

O(nlogn)属于性能较优的排序算法,但是用在链表确实要注意很多,它不支持高效的随机访问,所以需要

2014-07-03 18:10:48 953

原创 DP算法之最大字段和 最长单调子序列相似借鉴之处

DP算法最大字段和 a[1...n]找出连续子序列和最大的一个(曹博的PPT里面看到的)DP算法 最长单调递增(递减)子序列 a[1...n]找出未必连续的 最长的 单调递增子序列dp[i]: 表示a[1...i]的最长单调递增子序列,由于是否加一个元素与之前解的最后一个元素大小有关,因此用j记录dp[i-1]的最优解最后一个元素,dp[i]

2014-07-03 14:28:55 1206

原创 cpp coding随笔

最近非常代码郁闷,遇到各种不顺心。写个Huffman,想用二叉树实现,之前的构造二叉树都完成了,当时还记得夏令营之后和赵王军Acmer交流了一下,他都不用这种notorious的指针,因为总会出bug,就因为null还有一些过于涉及底层,需要coder去考虑的事情。他用index模拟point,于是我也照做,里面就是n-1次loop,一次要排序,非全部参与的排序,然后删除两个最小,插入

2014-07-02 23:15:32 923

原创 iterator和指针区别

一直觉得iterator很别扭,好像是指针但是 youyou

2014-07-02 11:48:40 1604

原创 微博估计要火一阵的SleepSort之Shell及C实现

今日在微博看到如此神奇的代码,居然还有新的sort算法,对于我这种渣渣必须研究一下,代码如下:#!/bin.bashfunction f(){ sleep "$1" //sleep 这么多ms echo "$1"}while [ -n "$1" ] //第一个参数不为空do f "$1" & //后台运行,相当于fork一个进程去执行f, 父进程同

2014-06-29 15:24:01 1517 2

原创 图算法时空复杂度分析及重定向

关于图的DFS的时间复杂度分析:DFS是递归函数,一共调用n次,n为定点数,每次访问其对应的临界点,设为ei若是临界表,因为循环遍历list。总的基本操作次数 n+sum(e1+...en)=n+e, 故O(n+e)若是matrix,因为遍历一行,找非-1,且未visit,所以(n+1)*n=n^2+n,投O(n^2)拓扑排序里面,经过静态链栈优化后,邻接表为O(n+e),

2014-06-28 14:35:44 1402

原创 并查集

int Find(int i){ if(i>=setssize) return error i; while(tree[i]!=-1) i=tree[i]; return i;}int CollapsFind(int i){ if(i>=setssize) return error i; int queryi=i;//modified in finding parent

2014-06-27 18:18:06 767

原创 TopoSort 实现之不用高端静态链栈算法

今天理解了终于写了TopoSort,感觉当年DS学的静态链栈实在坑爹,而且麻烦,好像和我的本质没有太大的区别哦。时间复杂度O(n+e)其实和O(n^2)是邻接矩阵和临界表的区别。我的理解就是其实好像循环N次,{每次先找任意一个入度为0的点,然后从图中删除}。思路非常简单,但是coding实现还是有很多变化,我已开始不用indegree,直接matrix写了一个O(n^3)的,就是不断在ma

2014-06-27 14:09:14 914

原创 多重loop之 continue break设计

今天看到msdn一个找满足所有criterion的item,找到则返回一个,总结了多重循环程舍continue的设计 ,挺有意思for(item){ for(criterion) { if(!item.ismetby(criterion)) { next item loop//as one criterion not met, while continue can

2014-06-25 11:12:05 957

原创 DP 算法总结

01背包也是之前联系过的,最长公共子序列(和最短编辑举例一类),还有石子合并问题(本质是矩阵链乘法一类的)今天写了一下最长公共子序列,发现了问题,我习惯了用string于是用这个容器来装字符序列,然后就出现了问题。代码ac,递推方程必须全队,包括条件,下标。因为子串长度问题,必须m+1 n+1空间,in位长度1和j的lcs可能借助长度0和长度j的lcs,因此定义c(0,j)

2014-06-24 15:41:25 1273

原创 回溯法 或dfs 或深度优先 题总结

回溯法总结一道数字到字符串的题,将数字映射到手机的字符串上,是编程之美版本的简略版,简明的DFS,其实我更愿意用backtrack framework来做,说成是回溯法,本质没有区别vector numtoletter;void f(vector& strvec, int selectn, int n,string digits, vector numtoletter, vector&

2014-06-23 22:18:50 970

原创 贪心算法证明的回忆

关于贪心选择证明的理解,突然youdian

2014-06-22 12:24:04 1157

五子棋(AI ) ---vb版

我是上海大学计算机学院的学生,这个五子棋是我1个月的时间开发出来的,代码不多,最大的亮点是里面有人工智能,人机对战。

2012-02-18

asp.net网站-网聚社会员管理系统

我是上海大学计算机学院的大四学生,这是11年暑假作为项目组长完成的一个大型网站(相对本人的项目经历来说是比较大),用asp.net 和做的,使用的软件是vs2010 (.net4.0) sqlserver2008(备份的数据库是08版,如果是低版本数据库不能恢复),使用了jquery js 等技术,希望可以给愿意做网站的同学参考。还有一些项目相关内容,如果有兴趣,请联系我csdn账号。

2012-02-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除