LeetCode 1633, 122, 239
目录
- 1633. 各赛事的用户注册率
- 题目链接
- 表
- 要求
- 知识点
- 思路
- 代码
- 122. 买卖股票的最佳时机 II
- 题目链接
- 标签
- 思路
- 代码
- 239. 滑动窗口最大值
- 题目链接
- 标签
- 思路
- 代码
1633. 各赛事的用户注册率
题目链接
1633. 各赛事的用户注册率
表
- 表
Users有字段user_id和user_name。 - 表
Register有字段contest_id和user_id。
要求
- 编写解决方案统计出各赛事的用户注册百分率,保留两位小数。
- 返回的结果表按
percentage的 降序 排序,若相同则按contest_id的 升序 排序。
知识点
rount():四舍五入函数。count():统计个数函数。- 多表查询:
from后跟多张表,然后使用where限制笛卡尔积的部分数据(多表查询的结果是两张表排列组合的结果,这个结果被称为笛卡尔积)。 - 子表查询:子表查询就是将从表查询到的结果作为另一个表放在
from后边。 order by + desc/asc:排序,比如order by num表示按num进行(默认)升序排序,效果等价于order by num asc;order by num desc表示按num进行降序排序。
思路
要求各赛事的用户注册百分率,首先要求出参加各赛事的用户数和用户的总数(求用户的总数可以键一张子表),然后用前者除以后者就可以得出各赛事的用户注册百分率,但要注意的是求出来的百分率要乘100;然后再根据题目中的两个条件进行排序。
代码
selectcontest_id,round(count(*) * 100 / cnt.num, 2) percentage
fromUsers s,Register r,(selectcount(*) numfromUsers) cnt
wheres.user_id = r.user_id
group bycontest_id
order bypercentage desc,contest_id
122. 买卖股票的最佳时机 II
题目链接
122. 买卖股票的最佳时机 II
标签
贪心 数组 动态规划
思路
本题的股票可以随时卖和买,所以不需要计划的很长远,只要一天的价格比前一天的高,就在前一天买,然后在这天卖,使用了一种贪心的思想:只顾当前(局部)的最优解,局部最优解的总和就是全局最优解。
代码
class Solution {public int maxProfit(int[] prices) {int i = 1, res = 0;while (i < prices.length) {int profit = prices[i] - prices[i - 1];if (profit > 0) {res += profit;}i++;}return res;}
}
239. 滑动窗口最大值
题目链接
239. 滑动窗口最大值
标签
队列 数组 滑动窗口 单调队列 堆(优先队列)
思路
本题建议使用优先队列来解答,优先队列指的是插入队列的所有元素都有一个优先级,按照优先级的大小进行排序,优先级越大(或越小),越靠近队列头部(或尾部),其中,优先级可以是数字的大小,也可以是字符串的长度等可以量化的数量。
优先队列的实现也很简单,在这个类中内置一个双端队列,从头部执行获取和删除的操作,从尾部执行添加的操作,每次添加时从尾部向前扫描,直到扫描到优先级比待添加元素的优先级高的元素,将这些优先级低于待添加元素优先级的元素从队列中删除。
了解优先队列的实现后,就可以开始做题了。把滑动窗口想象成一个优先队列,每次滑动时都往队列中添加一个值,按理来说也应该从队列中删除一个值,但其实不然,在这个优先队列中只有最大值会被使用到,所以只要那个该删除的值不是最大值,就不需要删除它。
代码
class Solution {public int[] maxSlidingWindow(int[] nums, int k) {int index = 0;int[] res = new int[nums.length - k + 1];PriorityQueue queue = new PriorityQueue();for (int i = 0; i < nums.length; i++) {// 队列中已经有k个元素了,并且该队列的最大值还等于窗口前面的元素,对于这种队列,取出这个最大值if (i >= k && nums[i - k] == queue.peek()) {queue.poll();}queue.offer(nums[i]);// 从第k - 1个数开始if (i >= (k - 1)) {res[index++] = queue.peek();}}return res;}private static class PriorityQueue {LinkedList<Integer> deque = new LinkedList<>();int peek() {return deque.peekFirst();}void poll() {deque.pollFirst();}void offer(int n) {while (!deque.isEmpty() && deque.peekLast() < n) {deque.pollLast();}deque.offerLast(n);}}
}
相关文章:
LeetCode 1633, 122, 239
目录 1633. 各赛事的用户注册率题目链接表要求知识点思路代码 122. 买卖股票的最佳时机 II题目链接标签思路代码 239. 滑动窗口最大值题目链接标签思路代码 1633. 各赛事的用户注册率 题目链接 1633. 各赛事的用户注册率 表 表Users有字段user_id和user_name。表Register有…...
(十五)统计学基础练习题九(选择题T401-450)
本文整理了统计学基础知识相关的练习题,共50道,适用于想巩固统计学基础或备考的同学。来源:如荷学数据科学题库(技术专项-统计学三)。序号之前的题请看往期文章。 401) 402) 403) 4…...
用大白话讲解下 CNN和卷积核( 百度 AI 回答 )
CNN(卷积神经网络)和卷积核在图像处理中扮演着非常重要的角色。咱们来用大白话解释一下它们。 首先说CNN,它就像是一个聪明的机器,专门用来识别图片里的东西。CNN里面有很多层,每一层都有很多小单元,这些小…...
安全生产新篇章:可燃气体报警器检验周期的国家标准解读
随着工业化进程的加快,安全生产成为了重中之重。 可燃气体报警器作为预防火灾和爆炸事故的重要设备,其准确性和可靠性直接关系到企业的生产安全和员工的生命财产安全。 因此,国家对可燃气体报警器的检验周期有着明确的规定,以确…...
github搭建个人博客
准备工作 windows安装nodejs windows安装git windows安装hexo 拥有gitee个人账户 配置信息 通过gitee创建博客仓库 登录gitee平台,进入主界面,右侧加号,新建仓库,注意:仓库名称和gitee用户名称一致 生成/添加 SSH 公…...
Linux系统之mv命令的基本使用
Linux系统之mv命令的基本使用 一、mv命令介绍1. mv命令简介2. mv命令的使用结果 二、mv命令的使用帮助1. 在命令行的帮助信息2. mv常用选项 三、mv命令的基本使用1. 创建源目录和目标目录2. 新建测试文件3. 将源目录文件复制到目标目录4. 将文件进行改名5. 将目录的所有文件转移…...
vscode 好用的插件
转中文插件 Chinese 官网:Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code - Visual Studio Marketplace vue文件模板快速生成 Vue VSCode Snippets 官网:Vue VSCode 代码段 - Visual Studio Marketplace...
什么是蓝牙定位车载GPS终端
蓝牙定位车载GPS终端是一种集成了蓝牙技术和GPS定位功能的车载设备。这种终端不仅可以通过GPS卫星信号进行室外定位,还能利用蓝牙技术在室内环境中进行定位,实现室内外一体化的定位服务。以下是一些关于蓝牙定位车载GPS终端的关键特点和功能:…...
指纹采集技术
目录 1.概述 1.1 捺印油墨采集 1.2 现场指纹提取 1.3 在线指纹采集 2. 指纹采集器的关键技术指标 2.1 采集面积 2.2 分辨率 2.3 图像质量 2.4 耐用性 1.概述 最早的指纹采集技术是油墨法,至少已经有上百年的历史。1990年代出现了活体指纹采集器,…...
/etc/fstab、/etc/mtab 文件详解及永久挂载(文件系统、ISO镜像、文件网络共享)
/etc/mtab /etc/mtab 是当前的分区挂载情况,记录的是当前系统已挂载的分区。每次挂载/卸载分区时会更新 /etc/mtab 文件中的信息(执行 mount 命令会改变 /etc/mtab 的信息)。 文件样例 /etc/fstab 系统开机时会主动读取 /etc/fstab 这个文…...
【Linux】进程(5):命令行参数
大家好,我是苏貝,本篇博客带大家了解Linux进程(5):命令行参数,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 (A)为什么要有命令…...
vue2+antv/x6实现er图
效果图 安装依赖 npm install antv/x6 --save 我目前的项目安装的版本是antv/x6 2.18.1 人狠话不多,直接上代码 <template><div class"er-graph-container"><!-- 画布容器 --><div ref"graphContainerRef" id"gr…...
如何在XDMA中查看LTSSM状态机
简介 经常会遇到PCIe不能识别的问题,到底怎么去定位。本文以XDMA 为例,一方面复习下LTSSM状态机,一方面描述下如何通过FPGA的XDMA查看这个状态机 技术名词 LTSSM是一种常用于PCI Express(PCIe)接口的状态机…...
编译和运行qemu-uboot-arm64单板的Armbian系统
这篇文章ARM虚拟机安装OMV-CSDN博客遗留一个启动qemu-uboot-arm64单板Armbian镜像的问题,使用官方下载的镜像,会报错: fatal: no kernel available .... Failed to load /vmlinuz ...... qemu-system-aarch64 -smp 8 -m 8G -machine virt …...
Python版《消消乐》,附源码
曾经风靡一时的消消乐,至今坐在地铁上都可以看到很多人依然在玩,想当年我也是大军中的一员,那家伙,吃饭都在玩,进入到高级的那种胜利感还是很爽的,连续消,无限消,哈哈,现…...
Kubernetes ingress
目录 一.ingress 1.ingress简介 2.实现外部应用能访问内部集群服务的方法 (1)NodePort: (2)LoadBalancer: (3)externalIPs: (4)ingress&am…...
【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析
🔥 个人主页:空白诗 🔥 热门专栏:【JavaScript】 文章目录 🌿 引言五、 Destructuring Assignment - 解构赋值,数据提取的艺术 🎨📌 数组解构📌 对象解构&...
Linux入门学习指南
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...
纯血鸿蒙实战开发—如何添加顶部tab页面
1.Tabs组件 Tabs组件的页面组成包含两个部分,分别是TabContent和TabBar。TabContent是内容页,TabBar是导航页签栏. 根据不同的导航类型,布局会有区别,可以分为底部导航、顶部导航、侧边导航,其导航栏分别位于底部、顶…...
数仓建模—指标拆解和选取
数仓建模—指标拆解和选取 第一节指标体系初识介绍了什么是指标体系 第二节指标体系分类分级和评价管理介绍了指标体系管理相关的,也就是指标体系的分级分类 这一节我们看一下指标体系的拆解和指标选取,这里我们先说指标选取,其实在整个企业的数字化建设过程中我们其实最…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
React核心概念:State是什么?如何用useState管理组件自己的数据?
系列回顾: 在上一篇《React入门第一步》中,我们已经成功创建并运行了第一个React项目。我们学会了用Vite初始化项目,并修改了App.jsx组件,让页面显示出我们想要的文字。但是,那个页面是“死”的,它只是静态…...
