Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

两个链表第一个公共结点

两个链表第一个公共结点

题目:输入两个链表,找出它们的第一个公共节点。链表的定义如下:struct ListNode{int m_nValue;ListNode *m_pNext;};思路1:采用蛮力的方法:在第一个链表上顺序遍历每个节点,每遍历到一个节点的时候,在第二个链表上顺序遍历每个节点。如果第二个链表上的节点和第一个链表上的节点一样,就说明两个链表在节点上重合,于是就找到了公共的节点。而通常蛮力并不是好的方法。思路2:首先遍历两个链表得到它们的长度,就能知道哪个链表比较长...
数字在排序数组中出现的次数

数字在排序数组中出现的次数

题目:统计一个数字在排序数组中出现的次数。例如,输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4.思路1:该解法是最直观的解法,可以先使用二分查找先找到这个元素,然后分别向左和向右遍历,把左右相同的元素的个数都计算出来。思路2:使用二分查找的拓展,当查找的元素有重复的时,找到元素的第一个和最后一个,这样将可以计算出该元素有多少个重复的了。#include <stdio.h>#include "st...
数组中出现次数超过一半的数字

数组中出现次数超过一半的数字

题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。思路:一个数字在数组中出现次数超过了一半,则排序后,位于数组中间的数字一定就是该出现次数超过了长度一半的数字(,也即是说,这个数字就是统计学上的中位数。事实上可以不用对数组进行排序,或者说仅部分排序,受快速排序的partition函数的启发,我们可以利用反复调用partition函数来求的该数字。我们现在数组中随机选取一个数字,而后通过Partition函数返回该数字在数组中的索引inde...
Check—强大的C语言单元测试框架

Check—强大的C语言单元测试框架

1. 前言在看基数树源码时,发现源码里面有个deps的依赖文件夹,deps里是一个叫Check的源码安装包,Google之后发现Check原来是C语言单元测试框架。关于单元测试,Wikipedia的介绍点这里。Check 最主要的优点是对于每一个测试用例的运行都 fork 一个子进程,这么做的原因是因为 C 语言的独特性: (1) 其它语言如 Java,Python,Ruby等,单元测试出错最多不过是抛出异常; (2) C 语言如果指针操作错误,乱指一气,...
勒索软件CryptXXX与安全研究人员打攻防战

勒索软件CryptXXX与安全研究人员打攻防战

过去几个月,勒索软件CryptXXX的作者与卡巴斯基的安全研究人员打起了攻防战:研究人员向受害者提供免费工具去解锁被锁住的重要文件,让受害者不需要支付通常高达500美元的赎金(大约1BTC);然后勒索软件作者调整代码挫败解密工具。研究人员再利用另一个弱点重新占据上风。如此反复。但目前占据上风的是勒索软件作者。本月初发布的新版CryptXXX至今还没有解密工具释出。与新版CryptXXX相关联的比特币地址过去三周共收到了 70 BTC,相当于约4.5万美元。...
<< 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 >>