- 博客(24)
- 收藏
- 关注
原创 leetcode739
第一次写用vector<vector<int>> 出现超时。将其换为stack<vector<int>> accept,貌似还是stack要 快一些。leetcode739
2018-02-12 11:39:56
248
原创 leetcode_008
这道题主要就是处理各种情况有点烦。首先删去所有前缀空格。接着判断符号,string转为数字直到第一个不合法的字符,在转换时候需要注意纪录是否对字符串进行了转换的信息。若第一个非空格字符为非法字符,返回零。否则先处理溢出情况,在未溢出情况下返回转换后字符串。代码地址:008
2018-01-24 20:02:26
253
原创 leetcode_007
这道题需要注意的是溢出的处理。我是把每一位的数字存到一个vector中,接着再判断位数,重点处理位数为10的数字,处理方法是,数字的倒序从最高位依次与2147483647对应位比较,若新数字大,return 0即可。代码地址:007
2018-01-24 18:41:30
239
原创 西瓜书9.10:实现自动确定聚类数目的k_means算法
自动确定聚类数量的Kmeans方法 问题: 试设计一个能自动确定聚类数的改进k均值算法,编程实现并在西瓜数据集4.0上运行。 数据集: 西瓜数据集4.0 数据集描述: 该数据集共有30个样本,每个样本有密度和含糖度两个特征。 思路: 如何确定k的取值: 这里希望每一类别内部样本点距离较小而不同聚类之间的误差较大,所以用: 作为损失函数,其值
2017-12-11 09:24:52
7878
原创 python爬虫爬取豆瓣top250电影影评
信息系统课程项目,小组准备做一个电影推荐系统,自己选了觉得很有趣的资源模块,需要获取电影的评价资源等信息。花了大约一周看Web Scraping with Python这本书,对爬虫有了大体但是初略的了解。本来想把scrapy框架学完以后再写,但是看scrapy的文档觉得有点难懂。所以暂时放弃了对它的学习开始自己试着实现,有问题了再解决。 上一周实现了在百度知道上面获取了豆瓣top250电
2017-12-03 01:20:06
2361
2
原创 isomap mds 实现
Isomap 和 mds 实现数据集:iris数据集描述:一共五个字段,前四个字段表示花的四个属性,最后一个字段表示花的类别。共有150组数据,三种类别Mds方法思路:首先计算任意两朵花的欧式距离结果放入disM2矩阵,接着计算B2,然后对B降维为m*2,得到result2矩阵。Isomap方法思路:首先计算任意两朵花的欧式距离结果放入disM矩阵,选取k=10,使得前k个最短路径
2017-10-08 10:41:41
762
原创 机器学习
用python实现了留一法和十折交叉检验来对iris和wine数据集进行三分类。算法实现起来不难,但是由于第一次写,迭代函数的封装性不好(因为假设了类别在最后一列)。主要注意的是十折交叉检验时候分层抽样。因为两个数据集都是比较整齐,一二三类分为三块。所以这里用数据集每一行元组的下标除以10的余数作为其所处的块数。其余就没有什么了。只是因为先做的iris,数据集数量特别好,就特别蠢的假设总数是10和类
2017-09-29 19:46:42
330
原创 杭电1035
这道题很简单,用一个矩阵纪录该机器人是否走过某一个地方,当其走过该处纪录当前步数,接着如果走到一个以前走过的地方,就是循环了,若是走到边界就是走出去了。#include<iostream>#include<string>using namespace std;int main(){ int row,col,pos; cin>>row>>col>>pos; while(row!=0&&
2017-09-20 17:52:47
296
原创 杭电1034
这道题挺简单的,本来以为遍历会无法通过,但是用遍历的方法尝试竟然通过了。 主要需要注意的是,在每一个round,拥有奇数个candy的小朋友都会变成偶数。#include<iostream>using namespace std;int main(){ int stu; cin>>stu; while(stu!=0){ int round=0;
2017-09-20 16:34:01
616
原创 杭电1032
这道题比较简单,主要就是遍历,依次找。#include<iostream>using namespace std;int main(){ int m,n; while(cin>>m>>n){ int max=0; for(int i=(m<n?m:n);i<=(m<n?n:m);i++){ int step=1; int t=i;
2017-09-18 19:07:03
602
原创 服务器配置mysql远程访问
今天在服务器上配置mysql ,希望能够远程访问,花了较多时间。网上找的教程大多是分为两步,1,在mysql内新建用户,使其可以远程访问服务。2,更改my.cnf文件,将bind_address=127.0.0.0注释掉。可能是由于版本的原因,bind-address=127.0.0.0这句话在 /etc/mysql/conf.d/mysqld.cnf中。
2017-03-31 21:22:08
203
原创 WEP/WPA/WPA2/RC4算法及文本分割整理
这几周看的内容:1. 如何分割文本2. 通过学习的敏感文本识别方法3. Wep加密流程及破解方法4. Wpa/wpa2协议的认证、加密流程及破解方法5. RC4算法的细节文本分割:1)基于修辞方法的分割:既为每篇文本建立树形结构,其叶子结点为具有实际意思的词汇,其他非叶子结点为修辞成分,从而这些叶子结点为文本分割的依据2)基于主题
2017-03-29 21:03:55
1234
原创 杭电1996
题目很简单,有一个递推公式:a(n)=a(n-1)*3,a1=3.#include<iostream>#include<cmath>using namespace std;int main(){ int T; int n; long long s; cin >> T; while (T--) { cin >> n;
2016-05-24 20:24:06
299
原创 杭电1995
这道题很简单,将汉诺塔的递归调用树画出来就很清楚了。假设n=8,三根柱子编号abc,首先将7个disk由a移到b,然后将disk8由a移到c,然后再将7个disk由b移到c,即完成。也即n=8的问题可以转化为两个n=7的问题。对于任意n,最大的n一定只搬运1次,那么disk7将搬运2ci,依次类推。#include<iostream>#include<cmath>using namespace
2016-05-24 20:02:48
408
原创 杭电1209
题目很简单,找出时针和分针相对于12转动的度数,相减后去绝对值,判断是否大于180,若大于用360减去该值即得最终结果。需要注意的是在排序时存在角度相同而时间不同的情况,这个时候需要将时间小的放到时间大的前面。因为这个错了很多次!#include<iostream>#include<string>using namespace std;void sort(string time[], do
2016-05-23 16:58:25
311
原创 AVL树
刚学avl树,在写程序的过程中遇到一些很小但需要注意的问题。class AVLTree:public BinarySearchTree<Record>{public: //下面两个函数调用递归版本插入删除(主要是因为root为private,对于对象而言不可访问) Error_code Insert(const Record &newData); Error_code Rem
2016-05-23 00:50:02
690
原创 杭电1222
这道题不是很难,可以转化为求最大公因数问题,但是也是想了不少时间。 想到了两种方法,第一种(超时):计算第二次经过0这个位置走的次数,若等于n则完全遍历,若不为n则存在为被遍历的点,然后就是一个循环,没有遍历到的永远不会被遍历到了。 第二种(AC):首先m m%n(为了使m小于n,方便计算) n-m,这三个数结果是相同的。 其次,若m是n的倍数,自然是每一圈都是一个
2016-05-20 16:47:11
367
原创 杭电1029
以下为代码#include<iostream>#include<list>using namespace std;int arr[1000000];//定义为全局才不会access violation,arr[i]中存放i出现次数。int main(){ int n; while (cin >> n) { int num; int t
2016-05-18 14:56:27
257
原创 杭电1028
嗯,这道题因为用了递归所以是超时,但是答案是对的,也算是一种思路吧,终归想了很久,也记下来吧!#include<iostream>using namespace std;void function(int sum, int x, int &count);//和为sum,第一个数字是n,其后数字都不大于n的表示形式,故不会重复。int main(){ int n; while
2016-05-17 20:48:19
283
原创 杭电1027
很简单的一道题,初中时常做,其实就是求第M小的序列 程序写的不很好,有很多重复操作可以用函数,然后设置的变量太多了。 再有就是逻辑是在写的过程中想清楚的,所以错了很多次,这样很不好,还是应该想好再写。 对于这个程序,有两步较重要,就是在交换后,必须保证K后序列为有序且为从小到大。 最后呢,终于对了,还是挺开心!#include<iostream>using namespac
2016-05-16 20:37:58
401
原创 杭电1023 train problem2
1.递归(time limit exceeded)但是结果是对的,所以也几下来吧!#include<iostream>void calcu(int inNum, int outNum, long long &sum);using namespace std;int main(){ int n; while (cin >> n) { long long
2016-05-15 11:31:22
330
原创 杭电1022 train problem
主要是栈的应用 最后一定注意栈要清空。#include<string>#include<stack>#include<iostream>int main() {int n;string inOrder, outOrder;stack<char> train;char c;while (cin >> n >> inOrder >> outOrder) { int j = 0;
2016-05-15 10:17:01
350
原创 非递归遍历二叉树
前序遍历和中序遍历较简单,都是一直向左遍历,遍历完全后最后元素出栈,向右一步后继续向左遍历直至栈空。 后序遍历的话想了很久,最后想着反向遍历,一直向右遍历,遍历完全后最后元素出栈,向左一步后继续依次向右遍历直至栈空,myList为了控制遍历完全,saveList则是将遍历到的元素全部入栈。 这三个程序也想了很长时间,不过想出来了还是很开心! 因为stack的代码找不到了,就用list代替了。前
2016-05-09 16:25:24
233
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人