摘要: 题目描述 输入一个链表,输出该链表中倒数第k个结点。 ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { if(pListHead==NULL || k==0)return NULL; ListNode *p=pListHea 阅读全文
posted @ 2017-12-22 22:57 jeysin 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分。 思路:不考虑奇数与偶数的数字相对顺序的话,可以实现O(n)的时间复杂度,O(1)的空间复杂度 1 void AdjustArr(int *arr, int leng 阅读全文
posted @ 2017-12-22 21:49 jeysin 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路:要保持奇数和偶数的相对位置不变并且达到O(n)的时间复杂度的话,必须要用O(n)的辅助空间。 1 class 阅读全文
posted @ 2017-12-22 21:32 jeysin 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。 思路:小数点或者前面有一个整型,或者后面 阅读全文
posted @ 2017-12-22 20:59 jeysin 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均 阅读全文
posted @ 2017-12-22 16:31 jeysin 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 思路:两个指针一前一后,遍历找重复节点,特殊情况考虑重复的节点是头节点 class Solution { publi 阅读全文
posted @ 2017-12-22 11:56 jeysin 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 思路:两种解法,一种当做大数问题处理,大数加法,进位;另一种当做排列问题处理,递归。 阅读全文
posted @ 2017-12-22 10:38 jeysin 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路:考虑特殊情况,0的0次方,0的负数次方;利用递归,时间复杂度为O(logn)的解法,提高次方计算的效率;利用位运算来判断奇偶,提高效率 class Solution { p 阅读全文
posted @ 2017-12-22 10:09 jeysin 阅读(87) 评论(0) 推荐(0) 编辑