剑指Offer
coding something
这个作者很懒,什么都没留下…
展开
-
Python剑指>>调整数组顺序使奇数位于偶数前面
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变 1.申请新的数组 # -*- coding:utf-8 -*- class Solution: def reOrderArray(self, array): # write code ...原创 2019-04-10 15:06:59 · 218 阅读 · 0 评论 -
Python剑指>>输入一个链表,输出该链表中倒数第k个结点。
题目描述 输入一个链表,输出该链表中倒数第k个结点。 1.先遍历得出链表长度,也就是节点数,在遍历第count-k个节点,注意小于count-k<0的情况 # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.n...原创 2019-04-11 23:52:38 · 775 阅读 · 0 评论 -
Python剑指>>给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
只要是涉及快速幂运算。 * 1.全面考察指数的正负、底数是否为零等情况。 * 2.写出指数的二进制表达,例如13表达为二进制1101。 * 3.举例:10^1101 = 10^0001*10^0100*10^1000。 * 4.通过&1和>>1来逐位读取1101,为1时将该位代表的乘数累乘到最终结果。 # -*- coding:utf-8 -*...原创 2019-04-09 10:09:32 · 358 阅读 · 0 评论 -
Python剑指>>数组中查找重复数字
题目 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 思路: 将数组排序,然后遍历数组就可以找到 因为数组中的数字是从0-n-1,排序后每个数字和它对应的下标相等,因此我们...原创 2019-04-09 17:56:07 · 3239 阅读 · 0 评论 -
Python剑指>>输入一个链表,反转链表后,输出新链表的表头。
题目描述 输入一个链表,反转链表后,输出新链表的表头。 分析: 先将当前节点数对应的下一个节点数保存下来tmp=pHead.next,然后将上个节点数last赋值给pHead.next(初始last为None)。当前节点pHead赋值给last(成为上一个节点),最后将下一个节点tmp赋值给pHead(成为当前结点)。 # -*- coding:utf-8 -*- # cl...原创 2019-04-13 00:15:23 · 944 阅读 · 0 评论 -
Python剑指>>正则表达式匹配
题目描述 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配 分析: 每次分别在s和pattern中取一个字符进行匹配,如果匹配,则匹配下一个...原创 2019-04-10 09:24:16 · 141 阅读 · 0 评论 -
Python剑指>>合并两个排序的链表
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路1: 设置一个头结点,存合并链表 循环取出相对较小的加到节点尾部 合并没有循环完的链表 # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # ...原创 2019-04-14 00:36:18 · 132 阅读 · 0 评论