自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 找出数组里出现次数超过一半的数字

思路一:(map/哈希表)计数 小Y:啊,这个问题呀,很简单啊,我就给每个数字计数,最后看一下个数不就知道了吗? 我:那你想想“给每个数字计数”这个操作,是用什么数据结构来实现的呢? 小Y:C++里面的map呀…… 我:那你算算复杂度是多少 小Y:每个数字的平均查找复杂度是O(log N)(注,map是用红黑树实现的),那就是O(N log N)呗 我:那我排个序,

2016-03-28 23:57:33 1909

原创 面试经验

A. 面试官可能自己的经历不够全面,或者是故意说错来看看你是否真的有做好。遇到这样的情况,不要耍什么小聪明,也不要一副”与世无争“的样子,把误会说清楚就好了。 面:你觉得Andrew NG老师的机器学习课程如何? 我:我觉得NG老师的课程比较注重实用性和科普性,数学推导方面不是很多,balabala(我的简历上写着这门课得了97分,可能面试官不信。。。。) 面:哦,是嘛。我是看过几章

2016-03-28 10:55:36 496

原创 回归中的几个统计概念

如下图所示: 昨天做一个文本引用的回归分析,数据集和代码见我的github:https://github.com/cooljacket/TextReferenceRegression。 在做上述的线性回归的时候,发现cost一直很高,降不下来,学习速率调高到0.0975或以上,就会发现梯度下降变慢,甚至是变成不收敛的。然后出于数据集有点大,总共25000个sample,所以就采用了SGD来做,发

2016-03-28 09:51:25 755

原创 Trie树小酌

其实Trie树真的很容易且实用!简洁明了地实现了Trie树(2333,好像说得挺狂妄的样子……仅仅开个玩笑,勿喷~)

2016-03-27 00:55:07 397

原创 x & (x-1)的意义

它的意义是: x = x & (x-1)能够将x(二进制表示)的最右边的1变成0。

2016-03-26 20:07:46 1343

原创 Python碎片小知识点总结

A. 这是一篇总结贴Python入门快,用起来也快,也容易让人有种自己真的几天内掌握了python一样,其实还有挺多小细节值得注意的,理解它们可以加快效率,对python整体有个正确的认识。 这篇博客里列举的都是我自己觉得自己掌握得不够牢固的东西,如果有帮助就很好啦,反之不喜勿喷~thx

2016-03-25 20:31:47 545

原创 二维有序矩阵的查找

二维有序矩阵的快速查找

2016-03-24 20:17:23 1627

原创 旋转矩阵

旋转矩阵,笨方法 vs 新方法

2016-03-24 16:13:06 1105 1

转载 C/C++笔试常问的坑

C/C++基础语言知识查漏补缺

2016-03-24 15:14:39 736

原创 【机器学习实战】KNN

KNN是比较简单且好用的算法。 读本篇博客之前,需要先对numpy、scikit-learn有个基本的了解,因为它们都是python做科学计算、机器学习必备的好工具!还有就是需要了解cross validation(交叉验证),可参考我的另外一片博客:交叉验证A. 算法原理KNN是个怎样的算法呢?其实顾名思义就能猜个七八成了,k-nearest-neighbors,邻居?首先假设我们有一个计算两个

2016-03-20 13:11:02 1152 1

原创 字典树Trie实战

问起起源于在学堂在线上的《软件工程》这门课,一般每章后面都会有一个实践作业,发现其难度可以比拟大一大二的课程大作业,早有这样的训练强度该有多好呢?呵呵O(∩_∩)O~A. 问题描述 以上是基础的要求,其实字符串的题目一般都可以随便暴力做,所以评价一个算法的优劣,主要是看它在特定应用场景下的效率,比如: 基于上面的要求,我决定使用“字典树”Trie来实现基于字符串的快速查找,字典树的描述请自行

2016-03-19 17:21:31 601

原创 KMP算法

KMP算法学习

2016-03-17 21:02:28 816 1

原创 【算法导论】手动实现堆

A. 堆的简介堆是一个很好用的数据结构,它即没有搜索二叉树那样严格(要求左子结点必须小于父结点,而右子结点必须不小于左子结点),但同时有可以毫不费力气地维护平衡的高度(实现过平衡二叉树的就知道,挺麻烦的)。堆可以按照它的性质分为最大堆(任意父结点不小于左右子结点)和最小堆(任意父结点不大于左右子结点),两种原理都是一样的,下面就最大堆来讨论。首先是堆的底层数据的结构,只用到了一个普通的数组!!!没错

2016-03-16 11:25:51 730

原创 scikit-learn常用的用法及问题

对平时用机器学习算法常遇到的问题做个总结~A. 交叉验证交叉验证是为了评估当前的模型对于整个dataset的generalization error怎么样(如果太大,表示overfit或者underfit),根据[3]的介绍,一般有三种,根据对数据集划分成training set和validation set的比例不同来分的——划分一小部分作为validation set; 划分成k等分(k >

2016-03-13 21:04:20 3461

原创 TCP协议回顾

最近的经历发现TCP协议是个很好玩的东西,之前学的时候没什么感受,现在重新好好温习一次。 *注:传输层一般都是以sender(发送方)和receiver(接收方)来讨论,而不是客户端和服务器,因为任何联网的机器都可以作为sender或receiver。A. 三次握手三次握手的过程如下图所示,注意各个字段的值及其变化,如SYN(synchronize的缩写,同步),还有seq字段(sender和se

2016-03-10 18:01:12 1474 1

原创 【编程珠玑】自己实现位向量类

最近开始看《编程珠玑》了,传说中的“看起来很眼熟啊,而过几分钟后又得出结论——以前从来没读过”,刚看了第一章的内容,作者思考问题的方式和角度确实很好,前言提示说不要看太快,习题要一道一道跟着做,自己做过再去看答案。这一章的内容是磁盘排序的问题,用了位向量优化了排序(其实跟计数排序的原理差不多,就是利用所有的关键字在一定的范围内,而这里的关键字还是没有重复的,弄一个位向量,遇到一个值就将它响应的位置置

2016-03-10 11:46:04 848

原创 一步一步打造自己的VIM

一开始用vim的时候发现各种配置很繁琐,就静不下心去看,后来直接用别人写的“史上最强的vim配置”,虽然挺好用的,但是毕竟不是自己的,用着挺不舒服的。现在(可能突然脑抽了)打算开始根据自己需要的东西,一步一步添加。装逼点的说法:程序员是一群喜欢把不能确定的东西变成自己能够确定掌握的东西的人。Step 1首先第一个需求是: [1] tab键为4个空格的长度,换行时自动对齐,显示行号查资料找到这样

2016-03-09 12:36:37 1652

原创 git工作流程

哈哈,又来到了一周一次的技术分享环节了,这次准备给15级的小朋友们分享的是版本控制神器——git。包括如何使用git来管理自己的代码,如何与队友协作完成project。因为git是用命令行来操控的(当然也有图形化界面的,但是不推荐),很多git的初学者经常会被各式各样的指令、选项给弄晕了,所以这里想按一种“时间上的顺序”,也就是从创建代码仓库,但加入到暂存区,到提交,分支,合并,这整个流程,以及中

2016-03-05 12:07:04 693

原创 自己实现字符串转数字

A. atoi,字符串转整数使用assert强制规定字符串一定是合法的,剩下的就是正负号了。#include <stdio.h>#include <assert.h>int atoi(const char* str) { if (str == NULL) return 0; int num = 0, i = 0; bool neg = false; i

2016-03-03 23:32:09 1434 1

原创 Leetcode上的各种“Reverse”

A. 单链表整体的逆转题目链接:https://leetcode.com/problems/reverse-linked-list/其实做法挺简单的,就是将每个节点的next指针指向原来链表中的上一个就好了,注意对NULL的处理。class Solution {public: ListNode* reverseList(ListNode* head) { ListNode

2016-03-03 23:10:51 870

原创 计算机常识总结

P1. Big-endian和Little-endian查询wiki知道,“大小”的区别在于数据(以字节为单位)在内存中的排列顺序。比如存储一个int变量0x0A0B0C0D,从低地址到高地址看过来,“大端”的存储顺序比较自然一点——0x0A | 0x0B | 0x0C | 0x0D;而“小端”则是反过来的——0x0D | 0x0C | 0x0B | 0x0A。 一般intel的处理器都是“小端”

2016-03-03 15:37:30 794

检查整形溢出的计算器

一个检查Int类型运算时是否溢出的代码,再送一个生成从1到n的全排列的代码,够意思吧,还0积分就可下载!!!我叫Jacket

2014-06-23

空空如也

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

TA关注的人

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