当前位置: 首页 > news >正文

2023-2-12刷题情况

字母板上的路径

题目描述

我们从一块字母板上的位置 (0, 0) 出发,该坐标对应的字符为 board[0][0]。

在本题里,字母板为board = [“abcde”, “fghij”, “klmno”, “pqrst”, “uvwxy”, “z”],如下所示。

在这里插入图片描述

我们可以按下面的指令规则行动:

如果方格存在,‘U’ 意味着将我们的位置上移一行;
如果方格存在,‘D’ 意味着将我们的位置下移一行;
如果方格存在,‘L’ 意味着将我们的位置左移一列;
如果方格存在,‘R’ 意味着将我们的位置右移一列;
‘!’ 会把在我们当前位置 (r, c) 的字符 board[r][c] 添加到答案中。
(注意,字母板上只存在有字母的位置。)

返回指令序列,用最小的行动次数让答案和目标 target 相同。你可以返回任何达成目标的路径。

样例

样例输入

target = “leet”
target = “code”

样例输出

“DDR!UURRR!!DDD!”
“RR!DDRR!UUL!R!”

提示

  • 1 <= target.length <= 100
  • target 仅含有小写英文字母。

思路

模拟题,但是有些细节需要注意,因为Z的特殊性,L的优先级要大于D, U的优先级需要大于R

代码实现

class Solution {public String alphabetBoardPath(String target) {String ans = "";int i = 0, j = 0;char[] arr = target.toCharArray();for(char ch : arr){int row = (ch - 'a') / 5 , col = (ch - 'a') % 5;while(col < j){j--;ans += "L";}while(row > i){i++;ans += "D";}while(row < i){i--;ans += "U";}while(col > j){j++;ans += 'R';}ans += "!";}return ans;}
}

统计公平数对的数目

题目描述

给你一个下标从 0 开始、长度为 n 的整数数组 nums ,和两个整数 lower 和 upper ,返回 公平数对的数目 。

如果 (i, j) 数对满足以下情况,则认为它是一个 公平数对 :

  • 0 <= i < j < n,且
  • lower <= nums[i] + nums[j] <= upper

样例

样例输入

nums = [0,1,7,4,4,5], lower = 3, upper = 6
nums = [1,7,9,2,5], lower = 11, upper = 11

样例输出

6
解释:共计 6 个公平数对:(0,3)、(0,4)、(0,5)、(1,3)、(1,4) 和 (1,5) 。

1
解释:只有单个公平数对:(2,3) 。

提示

  • 1<=nums.length<=1051 <= nums.length <= 10^51<=nums.length<=105
  • nums.length==nnums.length == nnums.length==n
  • −109<=nums[i]<=109-10^9 <= nums[i] <= 10^9109<=nums[i]<=109
  • −109<=lower<=upper<=109-10^9 <= lower <= upper <= 10^9109<=lower<=upper<=109

思路

被这个0 <= i < j < n坑了一大把,一直没想到其实位置不影响结果,每个数都会被作为nums[i]与nums[j]遍历两次。所以根本不影响。可以直接排序,然后使用二分控制算法时间复杂度在O(nlog2nnlog_2nnlog2n)。看n的范围,只能使用O(nlog2n)的算法。nlog_2n)的算法。nlog2n)的算法。(看到区间查询,就想使用数组数组或者线段树,但这个nums[i] 范围一下子就给我树状数组整超内存了)

代码实现

class Solution {public long countFairPairs(int[] nums, int lower, int upper) {Arrays.sort(nums);long ans = 0;for(int i = 1; i < nums.length; i++){ans += Math.max(0, upper_bound(nums, upper-nums[i], 0, i-1) - lower_bound(nums, lower-nums[i], 0, i-1) + 1);}return ans;}private int upper_bound(int[] nums, int target, int l, int r){while(l <= r){int mid = (l + r) / 2;if(nums[mid] > target) r = mid - 1;else l = mid + 1;}return r;}private int lower_bound(int[] nums, int target, int l, int r){while(l <= r){int mid = (l + r + 1) / 2;if(nums[mid] < target) l = mid + 1; else r = mid - 1;}return l;}
}

相关文章:

2023-2-12刷题情况

字母板上的路径 题目描述 我们从一块字母板上的位置 (0, 0) 出发&#xff0c;该坐标对应的字符为 board[0][0]。 在本题里&#xff0c;字母板为board [“abcde”, “fghij”, “klmno”, “pqrst”, “uvwxy”, “z”]&#xff0c;如下所示。 我们可以按下面的指令规则行动…...

拉普拉斯矩阵

拉普拉斯算子 Δff(xi1,yj)f(xi−1,yj)f(xi,yj1)f(xi,yj−1)−4f(xi,yj)∑(k,l)∈N(i,j)(f(xk,yl)−f(xi,yj))\begin{aligned} \Delta f & f\left(x_{i1}, y_j\right) f\left(x_{i-1},y_j\right) f\left(x_i,y_{j1}\right)f\left(x_i,y_{j-1}\right) - 4f\left(x_i,y_j\r…...

Top-1错误率、Top-5错误率等常见的模型算法评估指标解析

Top-1 错误率&#xff1a;指预测输出的概率最高的类别与人工标注的类别相符的准确率&#xff0c;就是你预测的label取最后概率向量里面最大的那一个作为预测结果&#xff0c;如过你的预测结果中概率最大的那个分类正确&#xff0c;则预测正确&#xff0c;否则预测错误。比如预测…...

Urho3D 容器类型

Urho3D实现了自己的字符串类型和模板容器&#xff0c;而不是使用STL。其基本原理如下&#xff1a; 在某些情况下提高了性能&#xff0c;例如使用PODVector类时。保证字符串和容器的二进制大小&#xff0c;以允许例如嵌入Variant对象内。减少了编译时间。直接命名和实现&#x…...

C语言学习笔记(四): 循环结构程序设计

while语句 定义 While语句是C语言中的循环语句&#xff0c;它按条件循环执行语句&#xff0c;直到条件不满足为止 语法格式如下: while(condition) {//循环体内容; }使用实例 求123…100 include <stdio.h> int main(){int i 1, sum 0;while (i<100){sum i …...

02 OpenCV图像通道处理

1 通道提取与合并 在数字图像处理中&#xff0c;图像通道是指一个图像中的颜色信息被分离为不同的颜色分量。常见的图像通道包括RGB通道、灰度通道、HSV通道等。 RGB通道是指将图像分离为红色、绿色和蓝色三个颜色通道&#xff0c;每个通道表示相应颜色的亮度。这种方式是最常…...

微信小程序图书馆座位预约管理系统

开发工具&#xff1a;IDEA、微信小程序服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8项目构建&#xff1a;maven数据库&#xff1a;mysql5.7前端技术&#xff1a;vue、uniapp服务端技术&#xff1a;springbootmybatis本系统分微信小程序和管理后台两部分&#xff0c;项目采用…...

有限元分析学习一

系列文章目录 有限元分析学习一 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、有限元方法的简单介绍1.1 有限元的基础概念1.2 有限元软件发展历史1.3 有限元软件二、弹性力学的简单介绍2.1.…...

android avb2.0 总结

1、android vbmeta结构深入解析 2、android libavb深入解读 看完结构与代码,进一步了解了avb 比如vbmeta的结构、5种描述符、hash公钥签名存储位置 多层vbmeta结构、无vbmeta分区的验证逻辑、hash计算对比、公钥验证、签名验签、5种描述符体的处理 但是还有一些问题没有解决 如…...

聊天机器人-意图识别类,开源库推荐

随着人工智能和自然语言处理技术的不断发展&#xff0c;聊天机器人在商业、教育、医疗等领域的应用越来越广泛。因此&#xff0c;开源聊天机器人代码库也逐渐成为了热门话题。 开源聊天机器人代码库可以帮助开发者快速构建功能强大的聊天机器人&#xff0c;而不必从头开始编写…...

Java 标识符以及修饰符

Java 标识符Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。关于 Java 标识符&#xff0c;有以下几点需要注意&#xff1a;所有的标识符都应该以字母&#xff08;A-Z 或者 a-z&#xff09;,美元符&#xff08;$&#xff09;、或者下划线&#xff08;_&…...

封装、继承、Super、重写、多态instanceof类型转换的使用以及个人见解

这里写目录标题封装继承supersuper和this的区别重写多态instanceof类型转换封装 之前我们调用共有的属性&#xff0c;是直接可以调用的 但是属性私有后&#xff0c;无法在直接.调用 只能通过getset调用 继承 super 可以直接调用父类中属性和方法&#xff0c;私有的无法做 其…...

day13_面向对象的三大特征之一(封装)

封装概述 为什么需要封装&#xff1f; 现实生活中&#xff0c;每一个个体与个体之间是有边界的&#xff0c;每一个团体与团体之间是有边界的&#xff0c;而同一个个体、团体内部的信息是互通的&#xff0c;只是对外有所隐瞒。例如&#xff1a;我们使用的电脑&#xff0c;内部…...

越界访问数组

越界访问是指访问&#xff08;操作修改&#xff09;了不属于自己的空间 我们以如下代码为例&#xff1a;此代码在vs中进行 #include <stdio.h> int main() {int i 0;int arr[] {1,2,3,4,5,6,7,8,9,10};for(i0; i<12; i){arr[i] 0;printf("hello\n");}r…...

软件设计(十)--计算机系统知识

软件设计&#xff08;九&#xff09;https://blog.csdn.net/ke1ying/article/details/128990035 一、效验码 奇偶效验&#xff1a;是一种最简单的效验方法。基本思想是&#xff1a;通过在编码中增加一个效验位来使编码中1的个数为奇数&#xff08;奇效验&#xff09;或者为偶…...

【不知道是啥】浅保存哈

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…...

2021 WAIC 世界人工智能大会参会总结

前言 2021 年世界人工智能大会&#xff08;WAIC&#xff09;于2021年7月7日至10日在上海世博展览馆举办&#xff0c;本届大会继续秉持「智联世界」的理念&#xff0c;以「众智成城」为主题&#xff0c;促进全球人工智能创新思想、技术、应用、人才和资本的集聚和交流&#xff…...

ThingsBoard-实现定时任务调度器批量RPC

1、概述 ThingsBoard-CE版是不支持调度器的,只有PE版才支持,但是系统中很多时候需要使用调度器来实现功能,例如:定时给设备下发rpc查询数据,我们如何来实现呢?下面我将教你使用巧妙的方法来实现。 2、使用什么实现 我们可以使用规则链提供的一个节点来实现,这个节点可…...

MySQL数据库调优————数据库调优维度及测试数据准备

MySQL性能优化金字塔法则 不合理的需求&#xff0c;会造成很多问题。&#xff08;比如未分页&#xff0c;数据需要多表联查等&#xff09;做架构设计的时候&#xff0c;应充分考虑业务的实际情况&#xff0c;考虑好数据库的各种选择&#xff08;比如是否要读写分离&#xff0c;…...

电子货架标签多种固定方式

2.1寸和2.9寸电子价格标签多种固定方式&#xff1a; 1、桌面支架&#xff0c;放置在桌面或是货架上&#xff0c;用于桌面产品的价格或是信息显示 2、粘贴架&#xff0c;方便用于墙面桌面等应用 3、半透明支架&#xff0c;用于货架上的商品吊挂显示价格信息 4、轨道架&#xff…...

计算机毕业设计springboot基于的养老平台的设计与实现 SpringBoot架构下智慧养老综合服务系统的设计与实现 基于Java的社区养老数字化管理平台开发

计算机毕业设计springboot基于的养老平台的设计与实现&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。我国正加速步入老龄化社会&#xff0c;老年人口规模持续扩大&#xff0c;传…...

【OpenClaw从入门到精通】第46篇:企业“养虾”合规手册——审批备案+专网隔离+全流程管控(2026企业版)

摘要:着OpenClaw在企业场景的广泛应用,合规风险与安全事件频发,启明星辰报告显示60%的安全事件源于缺乏规范管理。本文基于《OpenClaw类智能应用安全指引V0.1》及金融、能源行业头部企业实践,构建“审批-备案-部署-审计”全流程合规框架。核心内容包括四步审批备案流程、专…...

告别低效写作:盘点2026年备受推崇的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。最新实测显示&#xff0c;2026年AI论文写作工具正在重新定义学术效率&#xff0c;覆盖选题构思、文献综述、内容生成、格式排版等核心场景&#xff0c;真正帮你高效搞定论文&#xff0c;省时又省力。 一、全流程王者&#xff1a;一站…...

Ostrakon-VL-8B高算力适配:RTX 4090D显存17GB极限压测与优化记录

Ostrakon-VL-8B高算力适配&#xff1a;RTX 4090D显存17GB极限压测与优化记录 1. 引言&#xff1a;当零售AI遇上顶级显卡 最近在部署一个专门为餐饮零售场景优化的多模态大模型——Ostrakon-VL-8B时&#xff0c;遇到了一个有趣的挑战。这个模型基于Qwen3-VL-8B微调&#xff0c…...

ChatGPT聊天记录导出实战:自动化归档与高效管理方案

ChatGPT聊天记录导出实战&#xff1a;自动化归档与高效管理方案 作为一名经常和ChatGPT讨论技术问题的开发者&#xff0c;我发现自己遇到了一个甜蜜的烦恼&#xff1a;聊得越多&#xff0c;积累的“宝藏对话”就越多。这些对话里可能藏着某个复杂问题的解决思路、一段精妙的代…...

母版设置、讲义母版、模板设置

母版设置、讲义母版、模板设置一. 母版设置1.1 插入母版及版式1.2 重命名母版及版式1.3 版式设置1.4 例题二. 讲义母版2.1 讲义母版设置三. 模板设置3.1 导入模板3.2 例题一. 母版设置 1.1 插入母版及版式 插入母版 插入版式&#xff0c;先点击一下母版 1.2 重命名母版及版…...

解锁论文写作新姿势:Paperzz AI 如何让本科毕业论文从「0 到 1」高效落地

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿paperzz - 毕业论文-AIGC论文检测-AI智能降重-ai智能写作https://www.paperzz.cc/dissertation 当毕业论文成为毕业季的「头号难题」&#xff0c;不少本科生都在重复着低效循环&#xff1a;对着空白文档发呆…...

Python张量框架选型避坑清单:87个真实项目踩坑案例汇总(含ONNX兼容性断裂、梯度检查点失效、分布式checkpoint跨框架不一致等3类高危风险)

第一章&#xff1a;Python张量框架选型的底层逻辑与决策模型选择Python张量框架并非仅由“流行度”或“上手快慢”驱动&#xff0c;而是需穿透API表层&#xff0c;审视其内存布局、计算图构建机制、设备抽象粒度与编译优化能力等底层要素。不同框架在张量生命周期管理上存在本质…...

AI智能客服性能测试实战:从零搭建到高并发优化

AI智能客服性能测试实战&#xff1a;从零搭建到高并发优化 最近在负责公司AI智能客服项目的性能保障工作&#xff0c;从零开始搭建了一套完整的性能测试与优化体系。这套系统上线后&#xff0c;业务量增长很快&#xff0c;但在几次营销活动期间&#xff0c;系统出现了明显的性能…...

ST25DV64KC动态NFC标签Arduino驱动库详解

1. 项目概述SparkFun ST25DV64KC Arduino Library 是面向 ST25DV64KC 动态 NFC/RFID 标签的专用驱动库&#xff0c;专为 Qwiic 生态系统中的 SparkFun Qwiic Dynamic RFID Tag&#xff08;型号 SPX-19035&#xff09;设计。该库并非通用 NFC 协议栈&#xff0c;而是深度适配 ST…...