
算法
文章平均质量分 68
liaoruiyan
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数组计数
原题给定数组A,大小为n,数组元素为1到n的数字,不过有的数字出现了多次,有的数字没有出现。请给出算法和程序,统计哪些数字没有出现,哪些数字出现了多少次。能够在O(n)的时间复杂度,O(1)的空间复杂度要求下完成么?转载 2014-09-22 13:30:55 · 1619 阅读 · 0 评论 -
判断树a是否是树b的子树--递归递归递归
题意:输入两棵二叉树A 和B,判断B 是不是A 的子结构。工叉树zl点的定义如下:原创 2014-10-15 22:29:17 · 1100 阅读 · 0 评论 -
将数组中的所有奇数放到所有偶数前面--函数指针
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位予数组的后半部分。原创 2014-10-14 23:06:02 · 2349 阅读 · 0 评论 -
归并排序
二路归并:若将两个有序表合并成一个有序表,称为二路归并。原创 2014-10-07 10:22:48 · 441 阅读 · 0 评论 -
反转链表--递归和非递归实现
递归实现:ListNode * ReverseList2(ListNode * head) { //如果链表为空或者链表中只有一个元素 if(head==NULL || head->m_pNext==NULL) return head; else { ListNode * newhead=ReverseL原创 2014-10-15 14:32:48 · 607 阅读 · 0 评论 -
解码数字--动态规划
题意:a用1表示,b用2表示,。。。z用26表示原创 2014-10-14 22:23:36 · 1859 阅读 · 0 评论 -
各排序算法
插入排序:插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。原创 2014-10-07 12:51:31 · 469 阅读 · 0 评论 -
二分查找
//循环实现int BinarySearch(int* arr,int low,int high,int target){ int mid; while(low<=high){ mid=(low+high)/2; if(arr[mid]>target) high=mid-1; else if(arr[mid]<target) low=mid+1; else原创 2014-10-07 11:29:34 · 402 阅读 · 0 评论 -
位运算--一个整数的二进制表示中1的个数
题意:请实现~个函数,输入一个整数,输出该数二进制表示中1 阪?数。例如把9 表示成二进制是1001.有2 位是1. 因此如果输入9. 该输出2 。原创 2014-10-07 22:19:09 · 956 阅读 · 0 评论 -
动态规划--斐波那契数列
斐波那契数列定义:原创 2014-10-07 19:13:33 · 920 阅读 · 0 评论 -
动态规划--背包问题、比值问题转背包问题
动态规划--dynamic programming原创 2014-09-24 23:29:46 · 657 阅读 · 0 评论 -
树的高度
原题有一个棵树,不一定是二叉树,有n个节点,编号为0到n-1。有一个数组A,数组的索引为0到n-1,数组的值A[i]表示节点i的父节点的id,根节点的父节点id为-1。给定数组A,求得树的高度。分析这个题目我们首先把数组写出来,然后进一步分析,就很明了了,如下例子:333-1201转载 2014-09-22 20:51:27 · 526 阅读 · 0 评论 -
字符串的全排列和组合算法
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。一、字符串的排列用C++写一个函数, 如 Foo(const char *转载 2014-11-05 21:58:10 · 610 阅读 · 0 评论