6291. 数组元素和与数字和的绝对差

代码

模拟即可

class Solution {
public int differenceOfSum(int[] nums) {
int ans = 0;
int sum = 0;
for (int i = 0; i < nums.length; i++) {
int t = nums[i];
ans += t;
while (t > 0) {
sum += t % 10;
t /= 10;
}
}
return Math.abs(ans - sum);
}
}

6292. 子矩阵元素加 1

代码

差分模板

但是在处理的时候,因为差分数组下标从 1 开始比较方便,所以我们让 q 中的值都 +1

最后返回结果时,原数组 = 差分数组的前缀和

为了符合下标从 0 开始的要求,我们定义数组 a,作为结果返回,存储时下标 -1 存储

class Solution {
private int[][] b;
public int[][] rangeAddQueries(int n, int[][] q) {
b = new int[n + 10][n + 10];
for (var a : q) {
insert(a[0] + 1, a[1] + 1, a[2] + 1, a[3] + 1);
} int[][] a = new int[n][n];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
b[i][j] += b[i][j - 1] + b[i - 1][j] - b[i - 1][j - 1];
a[i - 1][j - 1] = b[i][j];
}
}
return a;
} private void insert(int x1, int y1, int x2, int y2) {
b[x1][y1] += 1;
b[x2 + 1][y1] -= 1;
b[x1][y2 + 1] -= 1;
b[x2 + 1][y2 + 1] += 1;
}
}

6293. 统计好子数组的数目

代码

双指针

map存储每个数出现的次数

从左往右进行双指针,先左指针不动,一直右移右指针,直到满足条件 / 到达边界 为止

如果满足条件

  1. 则以 l 为左端点,r 右边的端点都满足。左端点为 l 的情况就找完了,不用再遍历左端点为 l 的情况了。
  2. 此时不断向右移动左指针,看是否满足(这一步用while,保证此时的右边界 r 不变)

不满足条件就继续移动

class Solution {
public long countGood(int[] a, int k) {
int l = 0, r = 1, n = a.length;
long t = 0;
long ans = 0;
boolean[] vis = new boolean[n + 10];
HashMap<Integer, Integer> map = new HashMap<>();
map.put(a[l], 1);
vis[0] = true;
while (l < r && r < n) {
if (!vis[r] && map.getOrDefault(a[r], 0) >= 1) {
t += map.get(a[r]);
}
if (!vis[r]) map.put(a[r], map.getOrDefault(a[r], 0) + 1);
vis[r] = true; while (t >= k) {
ans += n - r; t -= map.get(a[l]) - 1;
map.put(a[l], map.get(a[l]) - 1);
l++;
}
r++;
} return ans;
}
}

LeetCode_单周赛_328的更多相关文章

  1. 算法5: LeetCode_单链表_两数相加

    题目: * 给你两个 非空 的链表,表示两个非负的整数.它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字. * 请你将两个数相加,并以相同形式返回一个表示和的链表. * 你可 ...

  2. Leetcode 第133场周赛解题报告

    今天参加了leetcode的周赛,算法比赛,要求速度比较快.有思路就立马启动,不会纠结是否有更好的方法或代码可读性.只要在算法复杂度数量级内,基本上是怎么实现快速就怎么来了. 比赛时先看的第二题,一看 ...

  3. 【Leetcode周赛】从contest-111开始。(一般是10个contest写一篇文章)

    Contest 111 (题号941-944)(2019年1月19日,补充题解,主要是943题) 链接:https://leetcode.com/contest/weekly-contest-111 ...

  4. H5单页面手势滑屏切换原理

    H5单页面手势滑屏切换是采用HTML5 触摸事件(Touch) 和 CSS3动画(Transform,Transition)来实现的,效果图如下所示,本文简单说一下其实现原理和主要思路. 1.实现原理 ...

  5. 快速构建H5单页面切换骨架

    在Web App和Hybrid App横行的时代,为了拥有更好的用户体验,单页面应用顺势而生,单页面应用简称`SPA`,即Single Page Application,就是只有一个HTML页面的应用 ...

  6. ASP.NET Aries 入门开发教程9:业务表单的开发

    前言: 经过前面那么多篇的列表的介绍,终于到了大伙期待的表单开发了. 也是本系列的最后一篇文章了! 1:表单页面的权限设置与继承 对于表单页面,权限的设置有两种: 1:你可以选择添加菜单(设置为不显示 ...

  7. 【CSS进阶】伪元素的妙用--单标签之美

    最近在研读 <CSS SECRET>(CSS揭秘)这本大作,对 CSS 有了更深层次的理解,折腾了下面这个项目: CSS3奇思妙想 -- Demo (请用 Chrome 浏览器打开,非常值 ...

  8. bootstrap + requireJS+ director+ knockout + web API = 一个时髦的单页程序

    也许单页程序(Single Page Application)并不是什么时髦的玩意,像Gmail在很早之前就已经在使用这种模式.通常的说法是它通过避免页面刷新大大提高了网站的响应性,像操作桌面应用程序 ...

  9. 探索ASP.NET MVC5系列之~~~3.视图篇(下)---包含常用表单和暴力解猜防御

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  10. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

随机推荐

  1. 【题解】CF1659E AND-MEX Walk

    题目传送门 位运算 设题目中序列 \(w_1,w_1 \& w_2,w_1 \& w_2 \& w_3,\dots,w_1 \& w_2 \& \dots \& ...

  2. IIS 配置集中式证书模块实现网站自动绑定证书文件

    在 Windows 环境下如果采用 IIS 作为 网站服务器时,常规的网站绑定 HTTPS 需要一个一个站点手动选择对应的证书绑定,而且证书过期之后更换证书时也是需要一个个重新绑定操作,无法便捷的做到 ...

  3. 【Shell案例】【for循环、seq生成】3、输出7的倍数

    描述写一个 bash脚本以输出数字 0 到 500 中 7 的倍数(0 7 14 21...)的命令 方法1:in方式循环 [if的括号是中括号,中间的条件要有空格] [循环体用do和done配对] ...

  4. 当我们的执行 java -jar xxx.jar 的时候底层到底做了什么?

    大家都知道我们常用的 SpringBoot 项目最终在线上运行的时候都是通过启动 java -jar xxx.jar 命令来运行的. 那你有没有想过一个问题,那就是当我们执行 java -jar 命令 ...

  5. angr_ctf——从0学习angr(二):状态操作和约束求解

    状态操作 angr中提到的状态(state)实际上是一个Simstate类,该类可由Project预设得到.预设完成后,还可以根据需要对某些部分进行细化操作. 一个state包含了程序运行到某个阶段时 ...

  6. MSTN CE和MSTN SDK安装经验及技巧

    MSTN CE和MSTN SDK安装经验及技巧 本文介绍了MSTN CE及MSTN CE SDK安装的流程以及在安装时可能会遇到的问题 一.MSTN CE安装 1.MSTN CE即Microstati ...

  7. JavaSE流程学习图

  8. 搭建漏洞环境及实战——搭建DVWA漏洞环境

    DVWA是一款开源的渗透测试漏洞练习平台,其中内涵XSS.SQL注入.文件上传.文件包含.CSRF和暴力破解等各个难度的测试环境. 1.在安装时需要在数据库里创建一个数据库名,进入MySQL管理中的p ...

  9. 源码解读之TypeScript类型覆盖检测工具type-coverage

    因为团队内部开启了一个持续的前端代码质量改进计划,其中一个专项就是TS类型覆盖率,期间用到了type-coverage这个仓库,所以借这篇文章分享一下这个工具,并顺便从源码阅读的角度来分析一下该工具的 ...

  10. context状态树

    provider customer 父组件 创建context对象并导出 export const AddContext = React.createContext<any>({}) 导出 ...