算法题
SJTU 路子
快乐程序员
展开
-
剑指 Offer 56 - II. 数组中数字出现的次数 II
题目在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。示例 1:输入:nums = [3,4,3,3] \quad 输出:4示例 2:输入:nums = [9,1,7,9,7,9,7] \quad 输出:1限制:1 <= nums.length <= 10000 \quad 1 <= nums[i] < 2^31解法一: 哈希表用哈希表来保存数字出现的次数,时间复杂度 O(n), 空间复原创 2020-11-17 11:22:19 · 89 阅读 · 0 评论 -
剑指 Offer 32-I. 从上到下打印二叉树
题目从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回:[3,9,20,15,7]解法:BFS# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x#原创 2020-11-16 09:17:57 · 102 阅读 · 0 评论 -
剑指offer 55-I.二叉树的深度
题目输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7解法一:递归 or DFS# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):#原创 2020-11-16 09:05:11 · 109 阅读 · 0 评论 -
剑指offer 49. 丑数
题目详解我们把只包含因子2, 3 和 5的数称作为丑数(Ugly Number)。 求按从小到大的顺序的第n个丑数输入:n = 10输出:12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。暴力解法最简单的思路是暴力了!!!把所有在范围内的丑数都列举出来,然后去重+排序。然而妥妥的超出时间限制。class Solution(object): def nthUglyNumber(self, n): Set = set()原创 2020-11-12 11:16:55 · 118 阅读 · 0 评论 -
Leetcode 329. 矩阵中最长上升路径
题目给一个矩阵,找到它最长上升路径的长度。对于每一个点,它可以上下左右移动,但是不能斜对角移动。Example:Input: nums = [ [9,9,4], [6,6,8], [2,1,1]] Output: 4 Explanation: The longest increasing path is [1, 2, 6, 9].解题思路最直观的方法是,以矩阵中的每一个点作为起点,对每一个点用dfs搜索,然后求取最大值。直接上代码class Solution: de原创 2020-11-03 10:19:39 · 465 阅读 · 0 评论