LeetCode刷题笔记 - JavaScript(三)
admin
2024-05-14 21:06:07
0次

文章目录

    • 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;
};

相关内容

热门资讯

AI做攻略、“双向奔赴”……国... 本文转自:人民网人民网记者 许维娜今年国庆假期,AI(人工智能)成了不少年轻人的“旅行搭子”。行前做...
合肥的这个“梗”, 翻篇了 社交平台的评论区,曾长期流传一句专属于合肥的黑色幽默。有人问合肥哪里好玩,本地网友半开玩笑地回复:合...
7万+旅游中高层都在的群,今天... 做旅游这行,资源卡位、渠道互通、项目落地——往往就差一个“对的机会”。我们的行业社群已聚集70,00...
一场帐篷音乐节,如何让井研从“... 帐篷音乐节现场封面新闻记者 周洪攀10月的研溪湿地,晚风里裹着柑橘的清甜与民谣的回响。夜幕降临,10...
白鹤翩翩落星愿,上海迪士尼度假... 10月9日,世界候鸟日前夕,上海迪士尼度假区星愿公园的湖风里多了一分白鹤的灵动。三座白鹤雕塑正式揭幕...
成都锦江边赏初秋枫叶飘飘 目前,成都锦江边国华街枫叶树红了。近年来,国华街附近的几条街都栽种了红枫树,是城区较集中看枫叶的点位...
GBTA:商务旅行正在复苏,但... 亚太正在成为全球商务旅行增长的重要引擎。在经历疫情后的快速反弹之后,全球商务旅行正在进入一个新的增长...
从景区焕新到节赛引流 邹城双节... 齐鲁网·闪电新闻10月9日讯 中秋、国庆“双节”假期,邹城市文化和旅游局提前谋划、周密部署,立足自身...
江山如此多娇 且看石楼今朝 金秋十月,黄河岸畔秋意盎然,丰收盛会喜迎国庆。本次石楼国庆文旅活动以“江山如此多娇,且看石楼今朝”为...
海南国庆假期接待游客475.4... 2026年国庆假期,海南接待游客475.40万人次,较2025年增长13.1%,较2024年增长15...