LeetCode刷题笔记 - JavaScript(三)

news/2024/12/30 4:07:54/

文章目录

    • 1.剑指 Offer 59 - I. 滑动窗口的最大值
    • 1.剑指 Offer 43. 1~n 整数中 1 出现的次数

剑指 Offer 59 - I. 滑动窗口的最大值
剑指 Offer 43. 1~n 整数中 1 出现的次数

1.剑指 Offer 59 - I. 滑动窗口的最大值

给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。

题目大意:求每个滑动窗口的最大值。

解题思路:考虑维护一个单调队列,在滑动窗口移动的同时维护这个单调队列,就可以了。

代码

	var maxSlidingWindow = function(nums, k) {const res = []; // 答案序列const dque = []; // 单调队列const n = nums.length;let l = 0, r = 0; // 滑动窗口的边界while(r < n) {// 维护滑动窗口的边界while(dque.length !== 0 && dque[dque.length - 1] < nums[r]) {dque.pop();}dque.push(nums[r++]);if(r>=k) {res.push(dque[0]);if(dque[0] === nums[l]) dque.shift();l++;}}return res;
};

1.剑指 Offer 43. 1~n 整数中 1 出现的次数

输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。
例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。

题目大意:求1~n中每个数字出现的1的数量的和。

解题思路:总结规律。规律一:n位数上总的1的个数为n*(10^(n-1)),如1位数1的总和为1,2位数的1的总和为20,3位数的总和为300; 规律二:求1~n之间的所有数上的1的数量总和就是求n上的每一个数位区间上的1的数量的总和。设f(n)是可以求出1-n之间所有1的数量的函数,假如n=234,那么1-n之间所有1的数量就等于:f(200)+f(30)+f(4);
结合以上两个规则,就可以求出1~n 整数中 1 出现的次数。

代码

	var countDigitOne = function(n) {let res = 0;let count = 1;for(let i = 0; n >= count ; i++) {res += Math.floor(n / (count * 10)) * count + Math.min(Math.max(n % (count * 10) - count + 1, 0),count);count *= 10;}return res;
};

http://www.ppmy.cn/news/18524.html

相关文章

回收租赁商城系统功能拆解12讲-会员权益

回收租赁系统适用于物品回收、物品租赁、二手买卖交易等三大场景。 可以快速帮助企业搭建类似闲鱼回收/爱回收/爱租机/人人租等回收租赁商城。 回收租赁系统支持智能评估回收价格&#xff0c;后台调整最终回收价&#xff0c;用户同意回收后系统即刻放款&#xff0c;用户微信零…

Ceres 目标函数(pose_graph_3d使用之)构建学习笔记

问题说明 ceres-solver库是google的非线性优化库&#xff0c;可以对slam问题&#xff0c;机器人位姿进行优化&#xff0c;使其建图的效果得到改善。pose_graph_3d是官方给出的二维平面上机器人位姿优化问题&#xff0c;需要读取一个g2o文件&#xff0c;运行程序后返回一个pose…

23种设计模式(十四)——中介者模式【接口隔离】

文章目录 意图什么时候使用中介者真实世界类比中介者模式的实现中介者模式的优缺点亦称:调解人、控制器、Intermediary、Controller、Mediator 意图 用一个中介者对象来封装一系列的对象交互。使得各对象不需要显式地相互引用,从而使其松散耦合,而且可以独立地改变它们之间…

第六层:继承

文章目录前情回顾继承继承的作用继承的基本语法继承方式公共继承保护继承私有继承继承中的对象模型继承中的构造和析构顺序继承中同名成员访问非静态成员静态成员多继承语法注意多继承中的对象模型多继承父类成员名相同菱形继承概念菱形继承出现的问题虚继承步入第七层本章知识…

【论文翻译】ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation

【论文】https://arxiv.org/abs/2204.12484v3 【github】GitHub - ViTAE-Transformer/ViTPose: The official repo for [NeurIPS22] "ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation" and [Arxiv22] "ViTPose: Vision Transformer F…

让交互更加生动!巧用CSS实现鼠标跟随 3D 旋转效果

简单分析一下&#xff0c;这个交互效果主要有两个核心&#xff1a; 借助了 CSS 3D 的能力 元素的旋转需要和鼠标的移动相结合 本人简单的说一下如何使用纯 CSS 实现类似的交互效果&#xff0c;以及&#xff0c;借助 JavaScript 绑定鼠标事件&#xff0c;快速还原上述效果。 …

代码重构之路 --我的2022年总结

2022年是我正式参加工作的第10个年头&#xff0c;也是我在CSDN上写博客的第11个年头。在这10余年的时间里&#xff0c;虽然在工作上遇到了各种情况&#xff0c;但我一直坚持输出、坚持分享&#xff0c;一共在CSDN上发表了530多篇原创博文。在这些文章中&#xff0c;大部分都是与…

2023-1-21 刷题情况

最少侧跳次数 首先祝大家除夕快乐。 题目描述 给你一个长度为 n 的 3 跑道道路 &#xff0c;它总共包含 n 1 个 点 &#xff0c;编号为 0 到 n 。一只青蛙从 0 号点第二条跑道 出发 &#xff0c;它想要跳到点 n 处。然而道路上可能有一些障碍。 给你一个长度为 n 1 的数组…