Python数组中的逆序对

这道题可以这么想,我们要找到数组中的逆序对,可以看做对数据进行排序,需要交换数组中的元素的次数,但是防止相同大小的元素发生交换,因此需要选择一个稳定的排序方法,记录发生交换的次数。那么,基于比较的稳定的排序方法中,最快的方法就是归并了...

Python第一个只出现一次的字符

先遍历一遍字符串,用一个hash表存放每个出现的字符和字符出现的次数。再遍历一遍字符串,找到hash值等于1的输出即可。&039;&039;&039;在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找...

Python丑数

空间换时间。建立一个长度为n的数组,保存这n个丑数。在进行运算的时候,某个位置需要求得丑数一定是前面某个丑数乘以2、3或者5的结果,我们分别记录之前乘以2后能得到的最大丑数M2,乘以3后能得到的最大丑数M3,乘以5后能得到的最大丑数M...

Python把数组排成最小数

首先将数组中的数字全部转换为字符串存储在一个新的数组中,然后比较每两个数字串的拼接的mn和nm的大小,若mn<nm,则m更小,反之n更小,然后把更小的数放入一个新的List中,最后输出即可。使用冒泡排序很方便。&039;&03...

Python连续子数组的最大和

关键的问题在于成功分析整个过程。对于连续子数组,可以用一个数值来存储当前和,如果当前和小于零,那么在进行到下一个元素的时候,直接把当前和赋值为下一个元素,如果当前和大于零,则累加下一个元素,同时用一个maxNum存储最大值并随时更新。...

Python最小的k个数

两种方法。第一种方法是基于划分的方法,如果是查找第k个数字,第一次划分之后,划分的位置如果大于k,那么就在前面的子数组中进行继续划分,反之则在后面的子数组继续划分,时间复杂度O(n);第二种方法是可以适用于海量数据的方法,该方法基于二...

Python数组中出现次数超过一半的数字

两种思路。第一种思路,出现次数超过一半的数字,不管如何,必然这个数字位于数组中间的位置,因此可以采用类似于快排的划分的方法,找到位于数组中间的位置的数字,然后在顺序检索是否这个数字出现次数超过一半。第二种思路根据数组的特点,出现次数超...

Python字符串的组合

&039;&039;&039;输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。结果请按字母顺序输出。...

Python字符串的排列

依次取一个元素,然后依次和之前递归形成的所有子串组合,形成新的字符串。

Python二叉搜索树与双向链表

按照左右子树分治,递归实现。根的左边连接左子树的最右边结点,右边连接右子树的最左边结点。

Python复杂链表的复制

注意链表结点进行复制的时候,不能简单地写作pCloned=pNode,这样的话之后对pCloned的操作也会作用在pNode上面,导致操作循环往复。需要重新定一个pCloned=ListNode(0),然后对结点的.val...

Python二叉搜索树的后续遍历序列

根据后续遍历的性质,尾元素必定是树的根,同时小于尾元素的值是左子树,大于尾元素的值为右子树,且序列前半部分均小于尾元素,后半部分均大于尾元素(如果同时存在左右子树的话),可以将序列划分左子树序列和右子树序列,然后递归比较师妹每一段均满...

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

最多点赞

随便看看

标签TAG

友情链接

友链申请