![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
z-bingo
分享自己的所见所闻,所感所悟。
展开
-
2018爱奇艺校招【循环数比较】Python解法
题目描述对于任意两个正整数x和k,我们定义repeat(x, k)为将x重复写k次形成的数,例如repeat(1234, 3) = 123412341234,repeat(20,2) = 2020.牛牛现在给出4个整数x1, k1, x2, k2, 其中v1 = (x1, k1), v2 = (x2, k2),请你来比较v1和v2的大小。输入描述:输入包括一行,一行中有4个正整数x1, k...原创 2019-03-30 17:49:27 · 220 阅读 · 0 评论 -
【镜像二叉树】Python解法
利用递归,可以完美解决镜像二叉树问题,对于每个节点的左子树和右子树,进行交换即可# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solut...原创 2019-04-24 14:17:06 · 186 阅读 · 0 评论 -
LeetCode 199. 二叉树的右视图 Binary Tree Right Side View Python3解法
解题思路采用DFS(深度优先遍历),遍历过程中对深度进行标记;其次,为了得到右视图,先遍历节点的右子树,再遍历左子树Python代码# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = N...原创 2019-04-26 13:05:07 · 273 阅读 · 0 评论 -
LeetCode 143. 重排链表 reorder list Python3解法
# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def reorderList(self, head: ListNode) -> N...原创 2019-04-26 11:10:56 · 207 阅读 · 0 评论 -
LeetCode 37. 解数独 Python3解法
题目描述编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。其中,空白格用 ‘.’ 表示。解析这是一道典型的回溯法算法题,对于每个位置,依次放置规则允许放置的数字,依次进行,直到没有数字满足条件,回溯到前一个,重新放置。...原创 2019-04-09 13:44:24 · 517 阅读 · 0 评论 -
Leetcode 858. 镜面反射 Python解法
题目描述有一个特殊的正方形房间,每面墙上都有一面镜子。除西南角以外,每个角落都放有一个接受器,编号为 0, 1,以及 2。正方形房间的墙壁长度为 p,一束激光从西南角射出,首先会与东墙相遇,入射点到接收器 0 的距离为 q 。返回光线最先遇到的接收器的编号(保证光线最终会遇到一个接收器)。图示:解题思路:光线很大可能会在这个正方形中反射多次才能到达一个接收器,如果写代码考虑反射问题,...原创 2019-03-31 17:21:59 · 1000 阅读 · 0 评论 -
Leetcode 51. N皇后问题(N Queens) Python解法
题目描述n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。解题思路N皇后问题是一道典型的递归求解问题,常见为8皇后、4皇后问题。递归对象为在0−...原创 2019-03-31 15:27:30 · 1534 阅读 · 0 评论 -
2018拼多多校招【大整数相乘】Python解法
思路大整数相乘,其实完全套用了列竖式计算乘法的思路,重点就是讲竖式计算这一过程用代码表示。竖式计算中,一个乘数会和另一个乘数逐位相乘,从个位到最高位,相乘的结果依次左移一位,最后将多个计算结果相加即可,而左移一位其实就是“×10\times 10×10”,期间同时考虑进位加至前一位,这样整个思路就很清晰了。Python代码data = input().split()strA, strB =...原创 2019-03-31 12:15:20 · 162 阅读 · 0 评论 -
2018拼多多校招【最大乘积】Python解法
题目描述给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)输入描述:无序整数数组A[n]输出描述:满足条件的最大乘积思路由于只需要找出3个数的最大乘积,那么只有两种可能:最大数、次大数和第三大数的乘积;最大数、最小数和次小数的乘积(负负得正)。因此,只需要将输入数字遍历一次,保存最大值、次大值、第三大...原创 2019-03-31 12:08:07 · 263 阅读 · 0 评论 -
【LeetCode 124.】二叉树中的最大路径和 Binary Tree Maximun Path Sum Python3解法
题目描述给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。解题思路二叉树中的最大路径和,可以将这个问题进行最小化,如示例1所示,二叉树仅包含父节点、左节点和右节点三个节点,最大路径和问题转化为了求root.val, root.val+root.left.val, root.val+root....原创 2019-04-29 20:00:05 · 385 阅读 · 1 评论