![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
OOYYXX1998
这个作者很懒,什么都没留下…
展开
-
键值映射
实现一个 MapSum 类,支持两个方法,insert 和 sum: MapSum() 初始化 MapSum 对象void insert(String key, int val) 插入 key-val 键值对,字符串表示键 key ,整数表示值 val 。如果键 key 已经存在,那么原来的键值对将被替代成新的键值对。int sum(string prefix) 返回所有以该前缀 prefix 开头的键 key 的值的总和。 class MapSum { Map<String, Integer>原创 2021-11-14 18:24:23 · 332 阅读 · 0 评论 -
检测大写字母
我们定义,在以下情况时,单词的大写用法是正确的: 全部字母都是大写,比如 “USA” 。单词中所有字母都不是大写,比如 “leetcode” 。如果单词不只含有一个字母,只有首字母大写, 比如 “Google” 。给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。 class Solution { public boolean detectCapitalUse(String word) { // 若第 1 个字母为小写,则需额外判断第 2 个字母是否为小原创 2021-11-13 21:19:30 · 101 阅读 · 0 评论 -
k个逆序对数组
给出两个整数 n 和 k,找出所有包含从 1 到 n 的数字,且恰好拥有 k 个逆序对的不同的数组的个数。 逆序对的定义如下:对于数组的第i个和第 j个元素,如果满i < j且 a[i] > a[j],则其为一个逆序对;否则不是。由于答案可能很大,只需要返回 答案 mod 109 + 7 的值。 class Solution { public int kInversePairs(int n, int k) { final int MOD = 1000000007; int[][] f = new原创 2021-11-11 21:22:31 · 367 阅读 · 0 评论 -
范围求和
给定一个初始元素全部为 0,大小为 m*n 的矩阵 M 以及在 M 上的一系列更新操作。 操作用二维数组表示,其中的每个操作用一个含有两个正整数 a 和 b 的数组表示,含义是将所有符合 0 <= i < a 以及 0 <= j < b 的元素 M[i][j] 的值都增加 1。在执行给定的一系列操作后,你需要返回矩阵中含有最大整数的元素个数。 class Solution { public int maxCount(int m, int n, int[][] ops) {原创 2021-11-07 21:05:39 · 93 阅读 · 0 评论 -
键盘行
给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。 美式键盘 中: 第一行由字符 “qwertyuiop” 组成。 第二行由字符 “asdfghjkl” 组成。 第三行由字符 “zxcvbnm” 组成。 示例 :输入:words = [“Hello”,“Alaska”,“Dad”,“Peace”]输出:[“Alaska”,“Dad”] 方法:遍历 我们为每一个英文字母标记其对应键盘上的行号,然后检测字符串中所有字符对应的行号是否相同。 我们可以预处理计算出每个字符对应原创 2021-10-31 20:27:23 · 158 阅读 · 0 评论 -
只出现一次的数字
给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。 进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现? 示例 1: 输入:nums = [1,2,1,3,2,5] 输出:[3,5]解释:[5, 3] 也是有效的答案。 思路与算法 我们可以使用一个哈希映射统计数组中每一个元素出现的次数。在统计完成后,我们对哈希映射进行遍历,将所有只出现了一次的数放入答案中。 代码 class Solution {原创 2021-10-30 21:25:37 · 98 阅读 · 0 评论