![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
沧_海_笑
这个作者很懒,什么都没留下…
展开
-
杨氏矩阵
简介 杨氏矩阵是在很多面试和讨论中用到比较多的一个话题。它本身独特的构造使得它的一些增删查改的操作和堆排序以及二分搜索的思想很类似。它本身问题不难,实际操作的时候会稍微有点繁琐。问题 假定我们有一个mxn的矩阵,它的每一行以及每一列都是排好序的。我们可以称这个矩阵为Young tableaus(杨氏矩阵)。在这个矩阵里,可以有某些元素不存在的情况,也就是说,这些位置的值被设转载 2013-09-20 22:16:09 · 618 阅读 · 0 评论 -
在O(1)时间删除链表结点[数据结构]
题目:给定链表的头指针和一个结点指针,在O(1)时间删除该结点。链表结点的定义如下:struct ListNode{ int m_nKey; ListNode* m_pNext;};函数的声明如下:void DeleteNode(ListNode*pListHead, ListNode*pToBeDeleted);分析:这转载 2013-10-21 00:14:58 · 566 阅读 · 0 评论 -
定义一个函数求字符串的长度,要求该函数体内不能声明任何变量
#include #include using namespace std; int getLen(char *str) { if(*str== '/0') return 0; return getLen(str + 1) + 1; } int main(int argc, char *argv[]) { c原创 2013-10-21 00:00:25 · 1166 阅读 · 0 评论 -
四种方式实现--从尾到头输出链表
四种方式实现--从尾到头输出链表 方法一:借用栈倒序输出链表 方法二:先翻转链表,再顺序输出 方法三:递归实现,一个字妙,两个字很妙,三个字太妙了 方法四:用数组实现 方法一:借用栈倒序输出链表 因为栈是先进后出,把链表中的元素存进栈中,链表前面的元素在栈底,后面的元素在栈顶,链表后面的元素先出栈 方法二:先翻转链表,再按顺序打印(主要是想自己原创 2013-10-20 23:56:18 · 954 阅读 · 0 评论 -
判断单链表是否存在环,判断两个链表是否相交问题详解
【摘要】有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如果找到环的入口点?扩展:判断两个单链表是否相交,如果相交,给出相交的第一个点。有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。问题:1、转载 2013-10-20 23:41:02 · 565 阅读 · 0 评论 -
找出两个链表的第一个公共结点
题目:两个单向链表,找出它们的第一个公共结点。链表的结点定义为:struct ListNode{ int m_nKey; ListNode* m_pNext;};分析:这是一道微软的面试题。微软非常喜欢与链表相关的题目,因此在微软的面试题中,链表出现的概率相当高。如果两个单向链表有公共的结点,也就是说两个链表从某一结点开始,它们的转载 2013-10-21 00:44:16 · 649 阅读 · 0 评论 -
合并两个有序链表
题目:已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序分析:两个链表都应该是增序或者降序方法一使用递归的方法[cpp] view plaincopystruct Node { Node* next; int value; }; Node* Merge(Node* head1, Node* head2)转载 2013-10-21 00:36:31 · 820 阅读 · 0 评论 -
反转链表[数据结构]
题目:输入一个链表的头结点,反转该链表,并返回反转后链表的头结点。链表结点定义如下:struct ListNode{ int m_nKey; ListNode* m_pNext;};分析:这是一道广为流传的微软面试题。由于这道题能够很好的反应出程序员思维是否严密,在微软之后已经有很多公司在面试时采用了这道题。为了正确地反转一个链表,需要调转载 2013-10-21 00:30:37 · 521 阅读 · 0 评论 -
输出一个单向链表中间的结点
扩展:输入一个单向链表。如果该链表的结点数为奇数,输出中间的结点;如果链表结点数为偶数,输出中间两个结点前面的一个。思路一:先遍历一遍链表,获得链表节点总数,再根据总节点数的奇偶性输出中间节点。思路二:两个指针,一快一慢,慢指针每走一步,快指针走两步。当快指针指向节点的下一节点或下一节点的下一节点为空时,慢指针所指即是中间节点。//coder:LEE//20120310#inc转载 2013-10-21 00:24:48 · 706 阅读 · 0 评论 -
链表中倒数第k个结点[数据结构]
题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。链表结点定义如下: struct ListNode{ int m_nKey; ListNode* m_pNext;}; 分析:为了得到倒数第k个结点,很自然的想法是先走到链表的尾端,再从尾端回溯k步。可是输入的是单向链表,只有从前往后的指针而没有从后转载 2013-10-21 00:21:49 · 680 阅读 · 0 评论 -
常见的Hash算法
简介哈希方法学哈希函数和素数位偏向各种形式的哈希常用的哈希函数各版本哈希代码下载简介哈稀函数按照定义可以实现一个伪随机数生成器(PRNG),从这个角度可以得到一个公认的结论:哈希函数之间性能的比较可以通过比较其在伪随机生成方面的比较来衡量。一些常用的分析技术,例如泊松分布可用于分析不同的哈希函数对不同的数据的碰撞率(collision rate)。一般来说,对任意一转载 2013-09-22 00:27:15 · 813 阅读 · 0 评论 -
杨氏矩阵
简介 杨氏矩阵是在很多面试和讨论中用到比较多的一个话题。它本身独特的构造使得它的一些增删查改的操作和堆排序以及二分搜索的思想很类似。它本身问题不难,实际操作的时候会稍微有点繁琐。问题 假定我们有一个mxn的矩阵,它的每一行以及每一列都是排好序的。我们可以称这个矩阵为Young tableaus(杨氏矩阵)。在这个矩阵里,可以有某些元素不存在的情况,也就是说,这些位置的值被设转载 2016-06-13 09:54:19 · 479 阅读 · 0 评论