LeetCode算法刷题(python) Day43|09动态规划|343. 整数拆分、96.不同的二叉搜索树
目录 LeetCode 343. 整数拆分LeetCode 96.不同的二叉搜索树 LeetCode 343. 整数拆分 力扣题目链接 正整数n,先拆成两个数i, n-i,拆成多个数可以对n-i进行拆分,然后对这些求最大值。 确定dp数组以及下标的含义:对i进行拆分的最大乘积确定递归公式:dp[i] = max(dp[i], j * (i - j), j * dp[i-j])dp数组如何初始化:dp...
[python 刷题] 19 Remove Nth Node From End of List
[python 刷题] 19 Remove Nth Node From End of List 题目: 题目说的是就是移除倒数第 n 个结点,如官方给的案例: 这里提供的 n 就是 2,也就是倒数第二个结点 这道题本身的难度不是很大,最简单的方法就是 2-pass,第一个循环找到链表的长度,随后循环到 n - 2 的长度即可,这个解法代码如下: class Solution: def removeN...
【LeetCode刷题(数据结构与算法)】:二叉树的最大深度
给定一个二叉树 root ,返回其最大深度 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数 输入:root = [3,9,20,null,null,15,7] 输出:3 示例 2: 输入:root = [1,null,2] 输出:2 而左子树和右子树的最大深度又可以以同样的方式进行计算。因此我们可以用「深度优先搜索」的方法来计算二叉树的最大深度。具体而言,在计算当前二叉树的最大深...
【LeetCode刷题(数据结构与算法)】:合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的 **思路:定义一个头尾指针置为NULL while循环依次比较两个链表的值的大小 遍历链表 比较完数值大小过后连接到tail的尾部 然后各自的链表的节点的next指针指向下一个结点的地址 /** * Definition for singly-linked list. * struct ListNode ...
[python 刷题] 143 Reorder List
[python 刷题] 143 Reorder List 题目: Reorder the list to be on the following form: You may not modify the values in the list’s nodes. Only nodes themselves may be changed. 这道题虽然说不允许修改链表结点上的值,但是改了也能过……那样的解法...
【LeetCode刷题(数据结构与算法)】:有效的括号
首先这里需要用到栈的知识 力扣官方会有相关的栈的实现的接口函数 所以我们这里就直接拷贝一份我们栈的实现的代码 typedef int STDataType; typedef struct Stack{ STDataType* a; int top; int capacity;}ST; void STInit(ST* ps){ assert(ps); ps->a = NULL; ps->capa...
【LeetCode刷题(数据结构与算法)】:上下翻转二叉树
给你一个二叉树的根节点 root ,请你将此二叉树上下翻转,并返回新的根节点 你可以按下面的步骤翻转一棵二叉树: 原来的左子节点变成新的根节点 原来的根节点变成新的右子节点 原来的右子节点变成新的左子节点 上面的步骤逐层进行。题目数据保证每个右节点都有一个同级节点(即共享同一父节点的左节点)且不存在子节点 示例 1: 输入:root = [1,2,3,4,5] 输出:[4,5,2,null,null...
【LeetCode刷题(数组and排序)】:存在重复元素
给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 示例 1: 输入:nums = [1,2,3,1] 输出:true 示例 2: 输入:nums = [1,2,3,4] 输出:false 示例 3: 输入:nums = [1,1,1,3,3,4,3,2,4,2] 输出:true 方法:排序 在对数字从小到大排序之后,数组...
Pandas 掉包侠刷题实战--条件筛选
文章目录 准备工作1. isin(values) 和 ~2. df.drop_duplicates()3. df.sort_values()4. df.rename()5. pd.merge() 题目-条件筛选1. 大的国家2. 可回收且低脂的产品3. 从不订购的客户4. 文章浏览 I 准备工作 先简单过下基础,了解一些常用的方法, 1. isin(values) 和 ~ isin(values) ...
【LeetCode刷题(数据结构)】:检查两颗树是否相同
给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的 输入:p = [1,2,3], q = [1,2,3] 输出:true 输入:p = [1,2], q = [1,null,2] 输出:false 输入:p = [1,2,1], q = [1,1,2] 输出:false 前言 两个二叉树相同,当且仅当两个二叉树...