leetcode contest weekly 351

【前缀和】LeetCode 304. 二维区域和检索 - 矩阵不可变

题目链接 304. 二维区域和检索 - 矩阵不可变 思路 显然,一个矩阵的元素和可以拆分成每一行相加。 那一个矩阵的每一行不就是一个个一维数组,一维数组怎么快速求子数组的和?前缀和! 所以这道题很明显就是对输入矩阵建立一个前缀和矩阵,然后求每一行的前缀和差值便能就得子矩阵的和。 代码 class N ......
前缀 矩阵 LeetCode 区域 304

【LeetCode动态规划#07】01背包问题一维写法(状态压缩)实战,其二(目标和、零一和)

目标和(放满背包的方法有几种) 力扣题目链接(opens new window) 难度:中等 给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。 返回可以使最终数组和为目标 ......
写法 背包 实战 LeetCode 状态

LeetCode/子数组中占绝大多数的元素

设计一个数据结构,有效地找到给定子数组的 多数元素 。 子数组的 多数元素 是在子数组中出现 threshold 次数或次数以上(大于半数)的元素 分析 对于子区间进行多次查询,采用线段树的方法 给定的数组,我们可以将它分成任意的两部分,分别使用投票算法得到多数元素和出现的次数 如果该数组存在多数元 ......
数组 LeetCode 元素

扎实打牢数据结构算法根基,从此不怕算法面试系列之006 week01 02-06 循环不变量

循环不变量 #1、循环开始时需要做什么? 之前我们讲的线性查找法的核心代码如下: public static <E> int search(E [] data,E target){ for (int i = 0; i < data.length; i++) if (data[i].equals(ta ......
算法 数据结构 根基 结构 数据

leetcode_打卡06

leetcode_打卡06 题目:151. 反转字符串中的单词 思路: 先把字符串根据空格进行分割,分割成一个字符串数组; 对字符串数组进行逆置; 拼接字符串数组; class Solution { public String reverseWords(String s) { // 除去开头和末尾的 ......
leetcode

LeetCode Top100: 二叉树的最大深度 (python)

给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 以下是Python代码实现: cl ......
深度 LeetCode python 100 Top

4月17日leetcode二叉树的层序遍历II

给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)(出自力扣) 这个昨天的二叉树的层序遍历有所不同:需要将从后往前层序遍历二叉树,其实很简单,只需要用vector的逆置函数,将vector中的vector逆置即可。 这里顺 ......
leetcode

4月16日leetcode二叉树前序遍历创建字符串,二叉树的层序遍历

给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。 空节点使用一对空括号对 "()" 表示,转化后需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。 来源:力扣(LeetCode)链接:https://leetc ......
字符串 字符 leetcode

LeetCode Top100: 对称二叉树 (Python)

给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root = [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root = [1,2,2,null,3,null,3] 输出:false 提示: 树中节点数目在范围 [1, 1000] 内 -100 <= ......
LeetCode Python 100 Top

AtCoder Regular Contest 106 F Figures

洛谷传送门 AtCoder 传送门 晚自习的时候胡出来的做法((( 首先你会发现题目等价于求 $\sum\limits_{(\sum\limits_{i=1}^n a_i) = 2(n-1) \land \forall i \in [1,n], 1 \le a_i \le d_i} \prod\li ......
AtCoder Regular Contest Figures 106

LeetCode Top100:二叉树的中序遍历(Python)

给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 提示: 树中节点数目在范围 [0, 100] 内 - ......
LeetCode Python 100 Top

ABC297F AtCoder Beginner Contest 297 F - Minimum Bounding Box 2

https://atcoder.jp/contests/abc297/tasks/abc297_f 在 $n \times m$ 的棋盘上放置 $k$ 个棋子,记矩形 A 为能覆盖所有 $k$ 个棋子的最小的矩形,求 A 的面积的期望 将问题反过来考虑,枚举每种矩形有多少种放置棋子的方案,对于一个 ......
297 Beginner Bounding AtCoder Contest

2-211-(LeetCode-470) 用 Rand7() 实现 Rand10()

1. 题目 https://leetcode.cn/problems/implement-rand10-using-rand7/submissions/425373186/ 2. 解法 class Solution extends SolBase { public int rand10() { in ......
Rand LeetCode Rand7 211 470

AtCoder Regular Contest 105 E Keep Graph Disconnected

洛谷传送门 AtCoder 传送门 显然终止态是只剩两个连通块,一个包含 $1$ 另一个包含 $n$,并且两个连通块内的边数均为 $\frac{sz(sz-1)}{2}$。 如果只在连通块内连边,那么能连的边的总数是 $\frac{n(n-1)}{2} - \sum\limits_{i=1}^{cn ......
Disconnected AtCoder Regular Contest Graph

2-209-(LeetCode-121) 买卖股票的最佳时机

1. 题目 https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/ 121. 买卖股票的最佳时机 2. 解法 2.1 解法一:动态规划 2.2 解法二:非动态规划 if (prices.length < 2) { return 0; ......
时机 LeetCode 股票 209 121

2-207-通过(LeetCode-509)熟悉动态规划的解题步骤

1. 题目 运态规划的定义 动态规划的解题步骤 2. 解法 2.1 递归 public static int fibonacci(int n) { if (n == 0) { return 0; } if (n == 1) { return 1; } return fibonacci(n - 1) ......
LeetCode 步骤 动态 207 509

考研周记-week8

4.10~4.16 记录一下本周的考研进度情况 英语 本周英语继续每日阅读和单词,现在读短文时,能够明显感觉到词汇量的增多,不认识的单词越来越少,但是对于一些熟词僻义或者多义词,掌握的还没有很好,等到背完一轮单次之后,准备配合单词书背单词 数学 数学方面,本周结束了考研数学高等数学部分的全部网课,下 ......
周记 week8 week

LeetCode Top100: 爬楼梯 (python)

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入:n = 3 输出:3 解释:有三种方法可以爬到楼顶 ......
楼梯 LeetCode python 100 Top

LeetCode Top100: 合并两个有序链表 (python)

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 = [], l2 = [] 输出:[] 示例 3: 输入:l1 = [] ......
LeetCode 两个 python 100 Top

leetcode160-相交链表

leetcode160 方法一:哈希表 思路: 先创建一个unordered_set,存放ListNode*类型的变量 先遍历其中一个链表,把所有节点的指针放在set中 再遍历另一个链表,查找是否存在一个节点已经在set中,如果存在则说明这是它们的相交节点的指针,返回这个指针,如果不存在则说明不存在 ......
leetcode 160

LeetCode-Top100: 有效的括号 (python)

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括号。 示例 1: 输入:s = "()" 输出:true 示例 2: 输入 ......
括号 LeetCode-Top LeetCode python 100

leetcode_打卡5

leetcode_打卡5 题目:345. 反转字符串中的元音字母 思路:双指针 class Solution { public String reverseVowels(String s) { int n=s.length(); char[] arr=s.toCharArray(); int i=0 ......
leetcode

LeetCode-Top100:两数之和(python)

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7, ......
之和 LeetCode-Top LeetCode python 100

扎实打牢数据结构算法根基,从此不怕算法面试系列之004 week01 02-04 使用泛型实现线性查找法

1、算法描述 在数组中逐个查找元素,即遍历。 2、上一篇文的实现结果 在 扎实打牢数据结构算法根基,从此不怕算法面试系列之003 week01 02-03 代码实现线性查找法中,我们实现了如下代码: package com.mosesmin.datastructure.week01.chap02; ......
算法 数据结构 根基 线性 结构

AtCoder Beginner Contest 296

Transition Game 给定序列$a$,$1<=a_i<=n$,一场游戏有$n$个回合,第$i$回合时,第一个人先指定一个任意数$k$,第二个人任意选定一个$x$,$1<=x<=n$,然后$x:=a_x$执行$k$次,如果最后$x=i$,那么第二个人获胜,否则第一个人获胜 对于$n$个回合, ......
Beginner AtCoder Contest 296

AtCoder Beginner Contest 295

Three Days Ago 我们定义一个只由数字构成的字符串中的字符能够被重排成相同的两份,我们称这个字符串是个好字符串,比如12341234 现在给定一个字符串$S$,找出所有的$[l,r]$,使得在这段区间中的子段是个好字符串 题解:思维 + 组合计数 首先我们根据题意得到:一个好字符串中所有 ......
Beginner AtCoder Contest 295

扎实打牢数据结构算法根基,从此不怕算法面试系列之001 week01 02-01 什么是算法?

#1、什么是算法? 为了明确什么是算法,我们会从简单的查找功能开始讲起。 查找其实一个一个非常简单的算法, 但我们会为这个查找功能的算法做如下工作: 让查找的功能适应更多的数据类型 通过查找的例子讲解如何编写正确的程序? 为查找算法性能测试 对一些常见算法做复杂度分析 #2、定义算法 Algorit ......
算法 数据结构 根基 结构 数据

扎实打牢数据结构算法根基,从此不怕算法面试系列之002 week01 02-02 线性查找法

1、线性查找法 什么是线性查找法? 举例:在一沓试卷中,找到属于自己的那张试卷。 第1张:不是 第2张:不是 第3张:不是 …… 第n张:是,找到了! 第n+1张:不找了 …… 这个解决问题的思路和过程体现就是线性查找法的思想。 #2、线性查找法思路梳理 线性查找法,就是在线性的数据结构中来完成。 ......
算法 数据结构 根基 线性 结构

扎实打牢数据结构算法根基,从此不怕算法面试系列之003 week01 02-03 代码实现线性查找法

1、算法描述 在数组中逐个查找元素,即遍历。 2、思路原理 如算法描述,基本是最简单的代码块了,没有什么额外的原理。 3、初步的代码实现 线性查找法初步的代码实现: package com.mosesmin.datastructure.week01.chap02; /** * @Misson&Goa ......
算法 数据结构 根基 线性 结构

LeetCode 双周赛 102,模拟 / BFS / Dijkstra / Floyd

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 大家好,欢迎来到小彭的 LeetCode 周赛解题报告。 昨晚是 LeetCode 双周赛第 102 场,你参加了吗?这场比赛比较简单,拼的是板子手速,继上周掉大分后算是回了一口血 😁。 2618. 查询网 ......
LeetCode Dijkstra Floyd 102 BFS