Python栈的压入、弹出序列

建立一个辅助栈,把push序列的数字依次压入辅助栈,每次压入后,比较辅助栈的栈顶元素和pop序列的首元素是否相等,相等的话就推出pop序列的首元素和辅助栈的栈顶元素,若最后辅助栈为空,则push序列可以对应于pop序列。&039;&0...

Python包含min函数的栈

引入两个栈,一个栈每次push实际的数字,另一个minStack,如果push的数字小于minStack栈顶的数字,push新的数字,繁殖,把栈顶的数字再压入一遍。&039;&039;&039;定义栈的数据结构,请在该类型中实现一个...

Python顺时针打印矩阵

首先需要判断每一步开始是的坐标点是否满足小于行数的一半且小于列数的一半,在最后一圈中,可能出现仅能向右走一行,仅能向右走一行向下走一列,向右走一行向下走一列向左走一行,能走完整一圈,一共四种情况。其中只有能向左走一行必然发生,不必判断...

Python二叉树的镜像

需要判断输入的结点为空或者输入的结点没有子树的情况。

Python树的子结构

多出需要判断指针是不是None,避免访问空指针而造成程序崩溃。

Python合并两个排序的链表

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

Python递归以及非递归实现反转链表

需要注意三个问题:输入的链表头指针为None或者整个链表只有一个结点时,反转后的链表出现断裂,返回的翻转之后的头节点不是原始链表的尾结点。因此需要引入一个翻转后的头结点,以及一个指向当前结点的指针,一个指向当前结点前一个结点的指针,一...

Python链表中倒数第k个结点

代码的鲁棒性。需要注意:如果输入的链表为空;k大于链表的长度;k为0的情况。对于正常情况,设置两个指针分别指向头结点,第一个指针向前走k-1步,走到正数第k个结点,同时保持第二个指针不动,然后第一个指针和第二个指针每次同时前移一步,这...

Python调整数组顺序使奇数位于偶数前面

注重函数的扩展性能。把函数中的判断条件写成一个判断条件的函数,方便与函数的扩展。对于奇数位于偶数前面的情况,类似于快排,在头和尾分别设置一个指针,头指针指向奇数则后移,尾指针指向偶数则前移。&039;&039;&039;输入一个整数...

Python在O(1)时间删除链表结点

当要删除的结点不是尾结点而且不是仅有一个结点的头结点,可以把该结点i的下一个结点j的内容复制到结点i,同时把i结点的next指向j结点的next,然后再删除结点j。如果要删除的链表为单结点链表且待删除的结点就是头结点,需要把头结点置为...

Python打印1到最大的n位数

要点是注意输入的n位数是否会导致溢出,因此利用字符串模拟整数的加法。注意:在打印函数中,需要判断打印的数字是否是以0开头的,同时判断条件是num[i]!="0",不能写作num[i]!=0,因为是使用str类型的,后面一种...

Python数值的整数次方

如果采用常规解法,需要注意的地方:当指数为负数的时候;当底数为零且指数为负数的情况;在判断底数base是不是等于0的时候,不能直接写base==0,因为计算机内表示小数时有误差,只能判断他们的差的绝对值是不是在一个很小的范围内。如果...

Python二进制中1的个数

注意到每个非零整数n和n-1进行按位与运算,整数n的二进制数中最右边的1就会变成0,那么二进制数中的1的个数就会减少一个,因此可以利用一个循环,使得n=n&(n-1),计算经过几次运算减少到0,就是有几个1。注意:书中给了另外...

Python斐波那契数列

如何不使用递归实现斐波那契数列,需要把前面两个数字存入在一个数组中。斐波那契数列的变形有很多,如青蛙跳台阶,一次跳一个或者两个;铺瓷砖问题。变态青蛙跳,每次至少跳一个,至多跳n个,一共有f(n)=2n-1种跳法。考察数学建模的能力。&...

Python旋转数组的最小数字

二分查找的变形,注意到旋转数组的首元素肯定不小于旋转数组的尾元素,设置中间点。如果中间点大于首元素,说明最小数字在后面一半,如果中间点小于尾元素,说明最小数字在前一半。依次循环。同时,当一次循环中首元素小于尾元素,说明最小值就是首元素...

惪特博客
  • 文章总数:
    5314 篇
  • 评论总数:
    53665 条
  • 标签总数:
    8983 个
  • 总浏览量:
    30759566 次
  • 最后更新:
    3天前

最多点赞

随便看看

标签TAG

友情链接

友链申请