新的开始 之 数据结构与算法
对以前做过的和正在做的算法题的总结归纳
天上的西红柿
如果人只能活一次,就让梦想比现实高那么一点吧。
展开
-
LeetCode 654. 最大二叉树 python3实现
给定一个不含重复元素的整数数组 nums 。一个以此数组直接递归构建的最大二叉树定义如下:二叉树的根是数组 nums 中的最大元素。左子树是通过数组中最大值左边部分递归构造出的最大二叉树。右子树是通过数组中最大值右边部分递归构造出的最大二叉树。返回有给定数组 nums 构建的最大二叉树 。示例 1: 6 / \ 3 5 \ / 2 0 \ 1 输入:nums = [3,2,1,6,0,5]输出:[6,3,5,n原创 2021-04-12 20:36:29 · 261 阅读 · 0 评论 -
LeetCode 剑指 Offer 27. 二叉树的镜像
题干如下:请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入: 4 / \ 2 7 / \ / \1 3 6 9镜像输出: 4 / \ 7 2 / \ / \9 6 3 1示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]链接:https://leetcode-cn.com/problems/er-cha-shu-de-jing-xian原创 2021-04-12 20:09:56 · 126 阅读 · 0 评论 -
LeetCode 1351. 统计有序矩阵中的负数 Python3实现
给你一个 m * n 的矩阵 grid,矩阵中的元素无论是按行还是按列,都以非递增顺序排列。 请你统计并返回 grid 中 负数 的数目。示例 1:输入:grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]输出:8解释:矩阵中共有 8 个负数。示例 2:输入:grid = [[3,2],[1,0]]输出:0示例 3:输入:grid = [[1,-1],[-1,-1]]输出:3示例 4:输入:grid = [[-原创 2021-04-11 21:25:32 · 200 阅读 · 0 评论 -
LeetCode 104. 二叉树的最大深度 Java & Python3 实现
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree分析:没什么好分析的,递归调用即可。J原创 2021-04-11 21:08:00 · 159 阅读 · 0 评论 -
LeetCode <48. 旋转图像> <面试题 01.07. 旋转矩阵> python3实现
把这两个题放一起是因为它们本质是一道题。(这句话是废话)先来看一下题干面试题01.07. 题干:分析:第一反应,将图像顺时针旋转90°,好像也不是那么难:(0,0)=> (0,n)(0,1)=> (1,n)(0,2)=> (2,n) ··· ···(n,n-1)=> (n-1,n)(n,n)=> (n,0)emmm还是算了吧……如果你有一点点线性代数的知识加上一点点敏锐的洞察力,你就会发现,将图像顺时针旋转90°,不就是相当于先沿主对角线(左上-原创 2021-04-09 17:17:30 · 177 阅读 · 0 评论 -
LeetCode 804. 唯一摩尔斯密码词 python实现
题干:国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", "b" 对应 "-...", "c" 对应 "-.-.", 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-",".原创 2021-04-08 20:41:59 · 141 阅读 · 0 评论 -
LeetCode 1742. 盒子中小球的最大数量 Java实现&Python实现
LeetCode 1742. 盒子中小球的最大数量 Java&Python实现你在一家生产小球的玩具厂工作,有 n 个小球,编号从 lowLimit 开始,到 highLimit 结束(包括 lowLimit 和 highLimit ,即 n == highLimit - lowLimit + 1)。另有无限数量的盒子,编号从 1 到 infinity 。你的工作是将每个小球放入盒子中,其中盒子的编号应当等于小球编号上每位数字的和。例如,编号 321 的小球应当放入编号 3 + 2 + 1 =原创 2021-04-04 16:51:02 · 396 阅读 · 2 评论 -
922. 按奇偶排序数组 II Java & Python3
LeetCode刷题 922.按奇偶排序数组 II Java和python3实现题目:给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。示例:输入:[4,2,5,7] 输出:[4,5,2,7] 解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。链接: https://leetcode-cn.com/proble原创 2021-04-03 20:45:33 · 168 阅读 · 0 评论 -
详解Java递归法实现反转链表(LeetCode 206. 反转链表)
详解Java递归法实现反转链表(LeetCode 206. 反转链表)/* * 示例: * 输入: 1->2->3->4->5->NULL * 输出: 5->4->3->2->1->NULL * * 链接:https://leetcode-cn.com/problems/reverse-linked-list/ */// ListNode的数据结构class ListNode { int val; ListNo原创 2021-04-03 11:10:21 · 336 阅读 · 0 评论