NK_test的博客

大部分人愿意做任何事来逃避真正的思考

leetcode Add Two Numbers(链表)

类似于大数加的操作,保存进位,注意处理长度可能不同的问题还有最后一个结点的进位问题。 我们先辨析几个概念: 链表头:数据内容为第一个元素的结点。 头指针:指向头结点元素的指针。 头结点:数据内容无效,其指针是头指针。 一句话描述为:头指针是指向头结点的指针,头结点是指向链表头的结点。 ...

2015-05-31 18:35:51

阅读数 1008

评论数 0

2015百度之星初赛(1)题解(1001)

1001:  简单的贪心题。首先我们特判必赢和必输的两种状态(maxm),然后对战斗力排序,找到在0~m之间最大的战斗力作为初始值, 然后,每一次将攻击力提升至 下一个彪形大汉的值,同时k--,如果一旦发现打不过,那么必输,break。注意战斗力1e12,用__int64 #include #...

2015-05-31 11:56:32

阅读数 2787

评论数 2

欧拉线性筛法求素数(顺便实现欧拉函数的求值)

我们先来看一下最经典的埃拉特斯特尼筛法。时间复杂度为O(n loglog n) int ans[MAXN]; void Prime(int n) { int cnt=0; memset(prime,1,sizeof(prime)); prime[0]=prime[1]=0; for(int...

2015-05-29 23:02:16

阅读数 12234

评论数 3

Leetcode Count Primes (欧拉线性筛法求素数)

欧拉筛法求素数的时间复杂度已经达到了O(n),是线性的很优秀的算法。 有关具体算法的详解请参考我的这一篇博客。 下面附上代码: class Solution { public: int countPrimes(int n) { int cnt=0; memset(vis,0,...

2015-05-29 22:54:19

阅读数 3474

评论数 0

Leetcode Longest Common Prefix (排序进行优化)

写完之后看到网上很多人的做法是暴力匹配,其实不用这样的。 我们只要先将字符串排序,那么如果相邻的两个字符串一定前缀匹配度最高,那么我们只需要遍历一遍,每次比较当前字符串和它的前一个字符串的前缀, 得出len,然后取所有len中的最小值即可。 注意特判size为0和1的情况。时间8ms cl...

2015-05-28 16:48:35

阅读数 948

评论数 0

[汇编] 汇编语言实现简易文本编辑器(光标移动、上卷和退格删除)

汇编实现的一个简易的文本编辑器,代码中有详细的注释。 思路和细节: (1) 在屏幕中央初始化一片面积,并且定位光标,利用16号中断0号功能分别在ah,al中存储扫描码和ascii码,由此进行功能键的判断。 (2) 实现对光标的操作,通过对dh,dl的变化和10号中断的2号功能进行光标的设置,上下左...

2015-05-27 12:54:34

阅读数 2830

评论数 0

2015百度之星资格赛题解

1001: 可以看作找规律,其实是组合数学的一道题目。符合要求的对应关系是要么是自己和自己对应,要么是互相对应,即1->2则2->1。 因为对于任何一个数如果他和自己本身对应,那么剩下还有n-1个数;如果他对应别的数(假定是a),那么a一定也和他对应,这样剩下还有n-2 个数,并...

2015-05-25 23:52:38

阅读数 850

评论数 0

LeetCode Reverse Integer (处理溢出)

这道题看上去比较简单,但是需要注意的细节和情况的处理还是很多的。 (1) 注意负数 (2)注意10,100这类数字的反转 (3) 最容易忽视的一点,整型的溢出。(2333333339反转超int) 注意我们计算的过程中不需要另外存数字,直接计算就好。处理溢出我们先用long long储存,...

2015-05-25 23:25:13

阅读数 1095

评论数 0

poj 1330 Nearest Common Ancestors

最近公共祖先的经典问题。 (1)dfs暴力标记查找 (2)线段树 (3)倍增算法 (4)Tarian算法。 这些我慢慢补充,自己也在学习这个算法。 这道题数据量比较小,询问每组只有一个,所以我采用的是将其中一个数的祖先不断向上查找,并且做了vis标记。然后对于另一个进行的查找操作, ...

2015-05-24 19:13:08

阅读数 701

评论数 0

BestCoder #42题解(hdu 5232 & 5233 & 5234)

感觉这次的题目还是挺简单的。 A :  如果两个人认识,那么就彼此各喝一杯酒,认识用1表示。另外主人肯定认识每一个人。数矩阵中的1加上人数n*2(主人的缘故)。 #include #include using namespace std; int s[40][40]; int main() {...

2015-05-24 18:47:35

阅读数 871

评论数 0

hdu 1588 线段相交+并查集

判断第k个线段的集合中一共有几条线段。 先用并查集将相交的线段合并记录,最后查询sum数组即可。 #include #include #include using namespace std; struct node { double x; double y; }s[2004]; stru...

2015-05-23 00:30:43

阅读数 715

评论数 0

Leetcode Longest Substring Without Repeating Characters(最长不重复子串)

如题,求一个字符串中的最长不重复子串。采用O(n)的算法,hash[值]=index,设置一个指针指向字符串的首位,遍历,每当发现有重复的字母出现时, 则指针指向最近的那个重复字符,记录更新长度。ans设为0,cur设为-1,有效解决空串和单字符的问题。 class Solution { publ...

2015-05-21 23:48:59

阅读数 945

评论数 0

符号三角形的回溯算法(王晓东算法分析例题)

题目: 下面都是“-”。 下图是由14个“+”和14个“-”组成的符号三角形。2个同号下面都是“+”,2个异号下面都是“-”。  +   +   -   +   -   +   +    +   -   -   -   -   +      -   +   +   +   -       ...

2015-05-21 00:00:47

阅读数 4299

评论数 0

Leetcode Two Sum (数组)

题意: 从一个无序数组中找到两个数(一定存在)使其和等于target,返回两个数的下标号,时间尽可能的优。 (1)因为有并且只有一组,我们可以先将数组排序,设置两个指针,一前一后,通过和的不同的情况移动指针,但是因为有了排序的过程,时间复杂度NlogN struct node { int v...

2015-05-20 00:31:12

阅读数 756

评论数 0

【dp】Leetcode House Robber&& House Robber II

很基础的动态规划。因为不能取连续的,所以要么只取第i-1个或者取第i-2和第i个,去最大值,列出状态转移方程即可。 class Solution { public: int rob(vector& nums) { int n=nums.size(); ...

2015-05-18 23:39:21

阅读数 773

评论数 0

[汇编] 在屏幕中央显示时钟

很简单的一段代码。可能对于刚学习的同学有两点知识需要补充: (1)        mov ah,2Ch     ;ch=时,cl=分,dh=秒         用来获取系统的时间,并且分别放在注释中的寄存器中       int 21h         ;获取时间 (2)    用来设置...

2015-05-18 23:10:27

阅读数 2578

评论数 0

要怎样努力,才能成为很厉害的人

首先,少年,答应别人的承诺,就一定要兑现。 我以前啊,和你一样,很想成为一个很厉害很厉害很厉害的人。 喜欢看热血的东西,幻想自己是屠龙的勇士,登塔的先锋,我左手有剑,右手有光,没头没脑的燃烧自己,敌人的骑军来了,我说你们何人堪与之战,我的女人在等我。 后来我现实了一点,我觉得我要...

2015-05-18 10:11:14

阅读数 1087

评论数 0

技术路线的核心竞争力

起了一个不好听的标题。 工作一年多了,也已经开始带新人了。听到那些比我年纪大的人叫我导师,我经常忍不住翻白眼。 我想写一些见解,写一些如果我上大学的时候看到会受益的东西。 首先澄清一点,千万不要听信有些过来人所谓【学算法在工作中基本用不上,但学它可以锻炼你...

2015-05-17 20:06:42

阅读数 966

评论数 2

Leetcode Number of 1 Bits(位运算)

判断一个无符号整数的二进制中有多少个1。 (1)先来一种比较好想到的方法:将数与1进行&运算,若为1则证明最后一位是1,然后再将原来的数字右移一位,依次直到原来的数字为0结束。 class Solution { public: int hammingWeight(uint32_...

2015-05-17 00:27:19

阅读数 725

评论数 0

Leetcode Happy Number

这题本来想找数学规律来着,但是没有找到。。(有路过的大牛还请指导) 就根据题目来看,要么出现1,返回true退出;要么在循环的过程中出现了以前出现的数(这点题目中给出了描述or it loops endlessly in a cycle which does not include 1. )。所...

2015-05-16 23:40:29

阅读数 674

评论数 0

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