
小白学算法
_Xiaobo
保持移动
展开
-
python-2.找出数组中重复的数字
题目描述:在一个长度为n的数组里的所有数字都在0~n-1的范围内,数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数字中任意一个重复的数字。例如,如果输入长度为7的数字{2, 3, 1, 0, 2, 5, 3},那么对应的输出是重复的数字2或者3.解题思路:直接对数组排序然后顺序遍历:时间复杂度 O(nlogn)O(nlogn)O(nlog...原创 2018-04-30 20:57:15 · 6757 阅读 · 0 评论 -
python-3.二维数组中的查找
题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路:每次选取右上角或者左下角,与输入的整数进行比较来进行排除: 若对应位置的数字等于所选数字,返回True若对应位置的数字大于所选数字,则排除对应一列若对应位置的数字小于所选数字,则排除对应...原创 2018-05-02 16:06:36 · 767 阅读 · 0 评论 -
python-6. 重建二叉树
题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树,假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4, 7, 2, 1, 5, 3, 8, 6},则重建如下图所示的二叉树并输出它的头结点。二叉树节点的定义如下:struct BinaryTreeNode{ int m_nValue...原创 2018-05-09 16:04:49 · 188 阅读 · 0 评论 -
python-4.替换空格
题目描述:请实现一个函数,把字符串中的每个空格替换成”%20”。例如,输入”We are happy.”,则输出”We%20are%20happy.”解题思路:这个问题得考虑是在原来的字符串上做替换,还是创建新的字符串并在新的字符串上进行替换。python中还不清楚怎么直接操作原来的字符串,先写出第二种操作基于第二种的解法 利用新的字符串来辅助添加,若遇见空格就换成%2...原创 2018-05-03 16:42:31 · 458 阅读 · 0 评论 -
python-7.二叉树的下一个节点
题目描述:给定一棵二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点?树中的节点除了有两个分别指向左、右子节点的指针,还有一个指向父节点的指针。根据中序遍历的特点:若该节点有右子树,则下一个节点为右子树最左边的节点若该节点无右子树:若该节点是父节点的左节点,则下一个节点为父节点若该节点是父节点的右节点,则下一个节点为遍历父节点找到一个节点是其父节点左孩子的节点class...原创 2018-05-12 15:23:28 · 744 阅读 · 0 评论 -
python-8.斐波那契数列
题目描述写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。斐波那契数列的定义如下: f(x)=⎧⎩⎨⎪⎪01f(n−1)+f(n−2)n = 0n = 1n > 1f(x)={0n = 01n = 1f(n−1)+f(n−2)n > 1f(x)=\begin{cases}0& \text{n = 0}\\1& \text{n = 1}\\f(n-1)+f...原创 2018-05-12 16:12:53 · 228 阅读 · 0 评论 -
python-1.用两个栈实现队列
题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。解题思路:队列:先进先出栈:先进后出一个栈用来EnQueue:每次进来元素都送入该栈另外一个栈来转换顺序做DeQueue:两个栈同时为空时候,return None当第二个栈没有元素时,将第一个栈的元素全部Push进第二个栈,此时最顶端的元素即队首,直接Pop即可当第二个栈有元素时候,直接Pop顶...原创 2018-04-28 19:48:24 · 216 阅读 · 0 评论 -
python-5. 从尾到头打印链表
题目描述:输入一个链表的头结点,从尾到头反过来打印出每个结点的值。链表结点定义如下:struct ListNode{ int m_nKey; ListNode* m_pNext;}解题思路:method_1: 利用栈的先进后出的特点,从头遍历链表的同时将结点的值入栈,最后依次弹出栈中的元素即可。可以借助python中的list实现栈meth...原创 2018-05-07 17:05:22 · 760 阅读 · 0 评论