day11|150,239,347

150

其实不难,理解规律,遇到符号就需要提出来做运算。

class Solution {public int evalRPN(String[] tokens) {//向零截断,正数向下取整,负数向上取整//Queue<Integer> num = new Queue<>();是错的注意区别Deque<Integer> num = new LinkedList<>();//名称用stack更好int len = tokens.length;//for(String s: tokens)更好for(int i = 0; i < len; i++){//不能使用==判断字符串是否相等if("*".equals(tokens[i])){int num1 = num.pop();int num2 = num.pop();num.push(num1 * num2);}else if("/".equals(tokens[i])){int num1 = num.pop();int num2 = num.pop();num.push(num2 / num1);}else if(tokens[i].equals("-")){int num1 = num.pop();int num2 = num.pop();num.push(num2 - num1);}else if(tokens[i].equals("+")){int num1 = num.pop();int num2 = num.pop();num.push(num2 + num1);}else{//用valueOf=也可以num.push(Integer.parseInt(tokens[i]));}}return num.pop();}
}

补充1:java中除法取整

在Java中,整数除法的结果是向下取整的。这意味着当两个整数相除时,结果会舍弃小数部分,只保留整数部分。

符合题目中说的从零取整。


239

感觉不太难,试做一下。

有点难,当最大值失效时,下一个最大值是多少呢。

好难,学习一下。

class Solution {public int[] maxSlidingWindow(int[] nums, int k) {//这个题目的问题在于,在左移的时候最大值能否保留,如何找到次大值//单调队列Deque<Integer> deque = new LinkedList<>();int n = nums.length;int[] res = new int[n - k + 1];for(int i = 0; i < n; i++){//先删前再删后while(!deque.isEmpty() && deque.peek() < i - k + 1){deque.poll();//头部弹出}while(!deque.isEmpty() && nums[deque.peekLast()] < nums[i]){deque.pollLast();//找到最大值}deque.offer(i);if(i >= k - 1){res[i - k + 1] = nums[deque.peek()];}}return res;}
}

补充1:单调队列

维护元素单调递减的队列就叫做单调队列,即单调递减或单调递增的队列。

理解体内的单调队列具体存的什么值,它不是数组,存的仅仅是当前这个i的最大值。

详细来说在这个队列中每次加入的新值,是,以这个下标i为起头,在不知道后面的情况下的可能是最大值的下标, 但i现在不一定是起头,所以只是存储起来。

补充2:思路

为了维护当前区间的最大值,所以需要进行比较,确保队列中的数据是在区间内的,所以有第一个循环函数。

第二个函数,则是在新加入值后,以这个下标i为结尾的k可能的最大值,那现在在队列中比我小的值就需要删掉了。这就是第二个循环函数的作用。

两个函数的作用下,最后留在队头的就是我们的答案。

补充3:双端队列的函数

这里右边是头,左边是尾

poll(), peek(), offer()

pollLast(), peekLast()


347

想法是用最大堆维护就好了。

先遍历一遍所有数据统计出现次数,然后再加入最大堆取前k个。

思路没问题,主要语法不熟,多复习!

class Solution {public int[] topKFrequent(int[] nums, int k) {Map<Integer, Integer> frequence = new HashMap<>();for(int num: nums){//写法! 错的frequence.push(num, frequence.getBy(num) ++);frequence.put(num, frequence.getOrDefault(num, 0) + 1);}//为什么是数组?//最大根,重要,难写!PriorityQueue<int[]> pri = new PriorityQueue<>((pair1, pair2) -> {return pair2[1] - pair1[1];});//注意遍历写法 错for(Map<Integer, Integer> map : frequence)for(Map.Entry<Integer, Integer> map : frequence.entrySet()){//哪些用add哪些用Put//堆怎么add,哪些参数,怎么获得pri.add(new int[]{map.getKey(), map.getValue()});}int[] ans = new int[k];for(int i = 0; i < k ; i++){哪些用pop哪些用pollint[] pair = pri.poll();ans[i] = pair[0];}return ans;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/493678.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中带缓存的输入/输出流

1、介绍 缓存时I/O的一种性能优化。缓存流为I/O流增加了内存缓存区。有了缓存区&#xff0c;使得在流上执行skip()、mark()、reset()方法都成为可能。 2、BufferedInputStream与BufferedOutputStream类 BufferedInputStream类可以对所有InputStream类进行带缓存区的包装以达…

国家认可的人工智能从业人员证书如何报考?

一、证书出台背景 为进一步贯彻落实中共中央印发《关于深化人才发展体制机制改革的意见》和国务院印发《关于“十四五”数字经济发展规划》等有关工作的部署要求&#xff0c;深入实施人才强国战略和创新驱动发展战略&#xff0c;加强全国数字化人才队伍建设&#xff0c;持续推…

基于Spring Boot的找律师系统

一、系统背景与意义 在现代社会&#xff0c;法律服务的需求日益增长&#xff0c;但传统寻找律师的方式往往存在信息不透明、选择困难等问题。基于Spring Boot的找律师系统旨在解决这些问题&#xff0c;通过线上平台&#xff0c;用户可以轻松搜索、比较和选择合适的律师&#x…

springboot460实习生管理系统设计和实现(论文+源码)_kaic

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本实习生管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息&…

C#中方法参数传值和传引用的情况

对于引用类型 - 传类类型的具体值时 此时传的是引用 - 单纯传类类型 此时传的是个test引用的副本&#xff0c;在方法内修改的是这个副本的指向 传string&#xff0c;集合同理&#xff0c;只要是指向新对象&#xff0c;就是引用副本在指向 对于值类型 - 传普通值类型 …

游戏AI实现-寻路算法(A*)

A*&#xff08;A-star&#xff09;是一种图遍历和寻路算法&#xff0c;由于其完整性、最优性和最佳效率&#xff0c;它被用于计算机科学的许多领域。给定一个加权图、一个源节点和一个目标节点&#xff0c;该算法将找到从源到目标的最短路径&#xff08;相对于给定的权重&#…

Autosar入门_架构(Architecture)

上一篇 | 返回主目录 | 下一篇 架构(Architecture) 1 Autosar架构分层概述2 MCAL3 ECU抽象层4 复杂设备驱动5 服务层6 RTE7 应用软件层1 Autosar架构分层概述 整体架构分为三层:应用软件(APP)、实时运行环境(RTE)、基础软件(BSW)以下架构对BSW进行了细化,主要包含四…

【计算机网络2】计算机网络的性能能指标

目录 一 、计算机网络的性能指标 二、具体介绍 1、速 率 2、带 宽 3、吞 吐 量 4、时 延 5、时延带宽积 6、往 返 时 延 7、信道利用率 一 、计算机网络的性能指标 计算机网络的性能指标就是从不同方面度量计算机网络的性能&#xff0c;有如下7个指标&#xff1a; 速…

Oracle 中间件 Webcenter Portal服务器环境搭建

环境信息 服务器基本信息 如下表&#xff0c;本次安装总共使用2台服务器&#xff0c;具体信息如下&#xff1a; Webcenter1服务器 归类 SOA服务器 Ip Address 172.xx.xx.xx.xx HostName wcc01.xxxxxx.com Alias wccprd01 Webcenter2服务器 归类 OSB服务器 Ip Addr…

【游戏设计原理】20 - 囚徒困境

一、分析与总结 1. 核心思想 囚徒困境是一种非零和博弈模型&#xff0c;揭示了理性自利个体在决策时的矛盾&#xff1a;在短期利益和长期合作之间往往存在冲突。 合作与背叛&#xff1a;博弈者可以选择合作&#xff08;短期牺牲&#xff0c;换取长远收益&#xff09;或背叛&…

线性代数期末总复习的点点滴滴(1)

一、可逆矩阵、行列式、秩的关系 1.行列式与可逆矩阵的关系 所以&#xff0c;不难看出矩阵可逆的充分必要条件是该矩阵的行列式不为0。 2.接着来看&#xff0c;满秩和矩阵行列式的关系 不难看出满秩和行列式不为0是等价的。 3.再来看&#xff0c;满秩和矩阵可逆的关系 说明了…

ubuntu22.04编译安装Opencv4.8.0+Opencv-contrib4.8.0教程

本章教程,主要记录在Ubuntu22.04版本系统上编译安装安装Opencv4.8.0+Opencv-contrib4.8.0的具体过程。 一、下载opencv和opencv-contrib包 wget https://github.com/opencv/opencv/archive/refs/tags/4.8.0.zip wget https://github.com/opencv/opencv_contrib/archive/refs/…

2024年12月陪玩系统-仿东郊到家约玩系统是一种新兴的线上预约线下社交、陪伴系统分享-优雅草央千澈-附带搭建教程

2024年12月陪玩系统-仿东郊到家约玩系统是一种新兴的线上预约线下社交、陪伴系统分享-优雅草央千澈-附带搭建教程 产品介绍 仿东郊到家约玩系统是一种新兴的线上预约&#xff0c;线下社交、陪伴、助娱、助攻、分享、解答、指导等服务模式&#xff0c;范围涉及电竞、运动、音乐…

算法学习(十六)—— 综合练习

目录 1863. 找出所有子集的异或总和再求和 47. 全排列 Ⅱ 17. 电话号码的字母组合 22. 括号生成 77. 组合 494. 目标和 39. 组合总和 784. 字母大小写全排列 526. 优美的排列 51. N皇后 36. 有效的数独 37. 解数独 79. 单词搜索 1219. 黄金矿工 980. 不同路径 Ⅲ…

「Mac畅玩鸿蒙与硬件45」UI互动应用篇22 - 评分统计工具

本篇将带你实现一个评分统计工具&#xff0c;用户可以对多个选项进行评分。应用会实时更新每个选项的评分结果&#xff0c;并统计平均分。这一功能适合用于问卷调查或评分统计的场景。 关键词 UI互动应用评分统计状态管理数据处理多目标评分 一、功能说明 评分统计工具允许用…

2023年下半年软考信息安全工程师案例分析及答案解析

试题一(16分) 回答问题1至问题6,将解答填入答题纸对应的解答栏内。 问题1(4分) 已知DES算法S盒如下,请补全S盒空缺的数据(1)、(2)、(3)、(4)。 【参考答案】3、13、15、0 问题2(2分) 已知S盒的输入为110011,请计算经过S盒变换之后的二进制输出。 【参考…

HUAWEI-eNSP交换机链路聚合(手动负载分担模式)

配置思路:HUAWEI交换机链路聚合有LACP模式跟手动负载分担模式,本文主打手动负载分担模式:首先交换机-PC之间划分基本vlan,交换机-交换机之间创建链路聚合组,划分端口至链路聚合分组(缺省模式为手动负载分担模式)。结果验证要求同vlan可以ping通,关闭某个聚合端口后仍可…

如何缩放组件

文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了Checkbox Widget相关的内容,本章回中将介绍Transform Widget.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在这里说的Transform是一种容器类widget,它和Container组件类似。它可以包含其它的组件,并…

MacOS安装MySQL

官网下载MySQL 苹果芯片选择ARM版本 安装过程中会要求你输入root的密码&#xff08;不少于8位&#xff09;&#xff0c;这里设置为12345678 打开系统设置查看是否成功安装MySQL 配置MySQL环境变量 vi ~/.zshrc加入一行export PATH$PATH:/usr/local/mysql/bin 执行source ~/…

Tomcat部署war包项目解决404问题

问题出在了Tomcat的版本上了&#xff0c;应该先去看这个项目使用的springboot版本&#xff0c;然后去仓库里找到对应Tomcat版本。 Maven Repository: org.springframework.boot spring-boot-starter-tomcat 因此我们应该选择Tomcat9版本。 当我把Tomcat11换成Tomcat9时&…