题目描述输入一个链表,从尾到头打印链表每个节点的值。返回新链表的头结点。方法一:用stack,或者最好vector.reverse vector printListFromTailToHead(struct ListNode* head) { sta...
分类:
其他好文 时间:
2015-06-12 13:06:04
阅读次数:
100
跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。class Solution { public: int jumpFloor(int number) { if(number == 1) ...
分类:
其他好文 时间:
2015-06-12 11:20:22
阅读次数:
150
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。分析:个人理解,应该是对空间复杂度有要求,如果没有要求,下面code就OKclass Solution { public: ...
分类:
其他好文 时间:
2015-06-11 20:54:17
阅读次数:
124
题目:输入一个链表,输出这个链表中倒数第K个节点。(代码的鲁棒性)思路:用两个指针p1和p2,都指向头节点,开始的时候,p2不动,p1移动k-1次,指向第k个节点。此时,如果p1->next!=null,则同时移动P1和p2.直到p1指向最后一个节点。此时,P2指向倒数第k个节点。C++代码:#in...
分类:
其他好文 时间:
2015-06-11 20:51:02
阅读次数:
94
题目:输入一个整数数组,实现一个函数中调整该数组中数字的顺序,使得所有的奇数位于数组的前半部,所有偶数位于数组的后半部。思路:用两个指针p1和p2,分别指向数组的头和尾部,p1只向后移,p2只向前移。当满足p1using namespace std;void preorder(int* pdata,...
分类:
编程语言 时间:
2015-06-11 18:29:27
阅读次数:
176
题目:给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点,链表节点与函数的定义如下:struct ListNode{int m_nValue;ListNode* m_pValue;};void DeleteNode(ListNode** pListNode,ListNode *...
分类:
其他好文 时间:
2015-06-09 23:11:44
阅读次数:
143
题目:输入一个数字n,按照顺序打印出1到最大n位十进制数,比如输入3,则打印出1,2,3直到最大的3位数999为止。本题陷阱:没有考虑到大数的问题。本题解题思路:将要打印的数字,看成字符串,不足位的,高位补0。打印字符串的时候要对数字进行判断,不要将高位的0打印出来。打印字符串的结束条件是,当最高位...
分类:
其他好文 时间:
2015-06-09 16:38:29
阅读次数:
83
最近看了《剑指offer》这本书,遇到了一个问题:反转链表
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的链表的头结点。
链表结点定义如下:struct ListNode
{
int _data;
ListNode * _pNext;
};
解决方案如下:ListNode * ReverseList(ListNode * pHead)
{ ListNod...
分类:
其他好文 时间:
2015-06-05 22:39:32
阅读次数:
161
剑指offer面试题35,找出字符串中第一个没有重复出现的字符,即第一个只出现一次的字符这道题提出一个很通用的方法就是用数组实现简单的哈希表。看到这种方法的思路,瞬间想起了桶排序。其基本思路是,字符是长度为8的数据类型,因此所有字符的可能情况时256种,即每一位要么为0 要么为1可以将每个字符对应的...
分类:
编程语言 时间:
2015-06-02 13:21:53
阅读次数:
127
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。设数组为rotateArray方法1:逐个遍历算法复杂度O(n)方法2:二分查找很...
分类:
编程语言 时间:
2015-05-31 18:12:13
阅读次数:
143