【每日一题】66. 加一 ,1822. 数组元素积的符号,682. 棒球比赛

66. 加一 - 力扣(LeetCode)

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:

输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。
class Solution {public int[] plusOne(int[] digits) {int len = digits.length;int flag = 0;for(int i = len-1 ; i >= 0 ; --i) {digits[i]+=1;if(digits[i] == 10)  {digits[i] = 0;flag = 1;}else {flag = 0;break;}}if(digits[0]==0) {if(len == 1 && flag == 0) digits[0]=1;else {digits[0]=1;int[] ans = new int[len+1];ans[0]=1;return ans;}}return digits;}
}

今天这道还是简单题。只需要做类似大数加法的事即可。从最后一位开始加,并对前面所有的位进行判定,会不会出现进位的情况。特殊情况是最高位进位,但实际上也很好解决,只需要一开始开一个多一位的数组(因为n位加+1最多n+1位),因为是最后一位+1进位得到,一旦出现最高位需要进位,那么其他位必然全都是0,只需要将最高位改为1即可。

1822. 数组元素积的符号 - 力扣(LeetCode)

已知函数 signFunc(x) 将会根据 x 的正负返回特定值:

  • 如果 x 是正数,返回 1 。
  • 如果 x 是负数,返回 -1 。
  • 如果 x 是等于 0 ,返回 0 。

给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的乘积。

返回 signFunc(product) 。

示例 1:

输入:nums = [-1,-2,-3,-4,3,2,1]
输出:1
解释:数组中所有值的乘积是 144 ,且 signFunc(144) = 1
class Solution {public int arraySign(int[] nums) {int flag = 1;int len = nums.length;for(int i = 0 ; i < len ; ++i ) {if(nums[i] == 0) return 0;else if(nums[i] > 0) continue;else flag *= -1; }return flag;}
}

这道也是简单题。这道题实际上没有必要去加所有数字,只要去判断符号即可,一旦有0出现,必然为0。博主这里用乘-1,也可以用计数器去统计负数的个数,偶数个返回1,奇数个返回-1.

682. 棒球比赛 - 力扣(LeetCode)

你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。

比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则:

  1. 整数 x - 表示本回合新获得分数 x
  2. "+" - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。
  3. "D" - 表示本回合新获得的得分是前一次得分的两倍。题目数据保证记录此操作时前面总是存在一个有效的分数。
  4. "C" - 表示前一次得分无效,将其从记录中移除。题目数据保证记录此操作时前面总是存在一个有效的分数。

请你返回记录中所有得分的总和。

示例 1:

输入:ops = ["5","2","C","D","+"]
输出:30
解释:
"5" - 记录加 5 ,记录现在是 [5]
"2" - 记录加 2 ,记录现在是 [5, 2]
"C" - 使前一次得分的记录无效并将其移除,记录现在是 [5].
"D" - 记录加 2 * 5 = 10 ,记录现在是 [5, 10].
"+" - 记录加 5 + 10 = 15 ,记录现在是 [5, 10, 15].
所有得分的总和 5 + 10 + 15 = 30
class Solution {public int calPoints(String[] operations) {Stack<Integer> st  = new Stack();int len = operations.length;int ans = 0;for(int i = 0 ; i < len ; ++i) {String tmp = operations[i];StringBuffer temp = new StringBuffer(tmp);int size = temp.length();if(temp.charAt(0)=='C'||temp.charAt(0)=='D'||temp.charAt(0)=='+') {//总是存在一个有效的分数if(temp.charAt(0) == 'C') {st.pop();} else if(temp.charAt(0) == 'D') {int c = 2*st.peek();st.push(c);} else {int a = st.pop();int d = a+st.peek();st.push(a);st.push(d);}} else {int b = 0;int flag = 1;for(int j = 0 ; j < size ; ++j) {if(temp.charAt(0)=='-') flag = -1;if(temp.charAt(j)>='0'&& temp.charAt(j)<='9') {if(j >= 1)   {b=b*10+(temp.charAt(j)-'0');}else b+=(temp.charAt(j)-'0');}}System.out.println(b*flag);st.push(b*flag);}}while(!st.empty()) ans+=st.pop();return ans;}
}

 这道题也是简单题,博主用的方法比较笨,就是直接暴力模拟。去模拟所有的情况。这道题比较坑的地方在于不管做了什么操作(除了'C'操作)都要把处理的数再放入栈中,最后再去相加,考虑好几种情况就可以过了。博主的方法比较笨,大家可以把自己的方法放在评论区。

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

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

相关文章

RISC-V交叉工具链riscv-gnu-toolchain编译

文章目录 1、下载2、编译1. 依赖安装2. 编译 3、运行 1、下载 $ sudo apt-get install git wget build-essential $ git clone https://github.com/riscv-collab/riscv-gnu-toolchain $ git checkout 2023.06.02注意上面 clone 的仓库&#xff0c;我们称其为构建脚本仓库&…

K8s:一文认知 CRI,OCI,容器运行时,Pod 之间的关系

写在前面 博文内容整体结构为结合 华为云云原生课程 整理而来,部分内容做了补充课程是免费的&#xff0c;有华为云账户就可以看&#xff0c;适合理论认知&#xff0c;感觉很不错。有需要的小伙伴可以看看&#xff0c;链接在文末理解不足小伙伴帮忙指正 对每个人而言&#xff0c…

Linux之web服务器

目录 www简介 常见Web服务程序介绍 服务器主机 主要数据 浏览器 网址及HTTP简介 URL http请求方法 状态码 MIME&#xff08;Multipurpose Internet Mail Extension&#xff09; www服务器的类型 静态网站 动态网站 Apache服务的搭建 Apache的安装 准备工作 htt…

在支付宝中 下载社会保险参保证明 方法

这里 我们打开支付宝 选择 市明中心 然后选择 社保 这里 在社保查询下 找到 个人社会参保证明查询 这里 选择好自己的省市区 文件就会出现在下面了 我们直接点击这个文件进入 下面就会有下载的选项了

深度解析 PostgreSQL Protocol v3.0(一)

引言 PostgreSQL 使用基于消息的协议在前端&#xff08;也可以称为客户端&#xff09;和后端&#xff08;也可以称为服务器&#xff09;之间进行通信。该协议通过 TCP/IP 和 Unix 域套接字支持。 《深度解析 PostgreSQL Protocol v3.0》系列技术贴&#xff0c;将带大家深度了…

IO面试题整理

1.同步/异步&#xff0c;阻塞/非阻塞是一样的概念吗&#xff1f; 不一样。 阻塞/非阻塞说的是调用者。调用者需要等待就是阻塞&#xff0c;不需要等待就是非阻塞。 同步/异步说的是被调者通知调用者的方式。被调者执行完成后再恢复调用者是同步。被调者立即告诉调用者收到求…

MySQL如何查找某个字段值相同的数据

当我们想要查找MySQL中某个字段值相同的数据&#xff0c;但我们又不知道这个数据的值是什么的时候该如何操作呢&#xff1f; 在我的数据表中有单词表以及对应的详细信息表&#xff0c;如果两张表是以单词作为逻辑上的外键时&#xff0c;查询单词详细信息操作就可以根据word值进…

无涯教程-Android - Spinner函数

Spinner允许您从下拉菜单中选择一个项目 例如。使用Gmail应用程序时,将显示如下所示的下拉菜单,您需要从下拉菜单中选择一个项目。 Spinner Example 示例 本示例演示计算机的类别,您需要从类别中选择一个类别。 以下是修改后的主要Activity文件src/com.example.spinner/Andr…

Java--静态字段与静态方法

1、静态字段 如果将一个字段定义为static&#xff0c;每个类只有一个这样的字段。而对于非静态的实例字段&#xff0c;每个对象都有自己的一个副本。 例如&#xff1a; class Employee {private static int nextId 1;private int id;... }其中&#xff0c;每一个Employee对…

解读《生成式人工智能服务管理暂行办法》

《生成式人工智能服务管理暂行办法》 第一章 总 则第二章 技术发展与治理第三章 服务规范第四章 监督检查和法律责任第五章 附 则 以ChatGPT为代表的现象级互联网应用的出现&#xff0c;掀起了人工智能领域新一轮技术浪潮。作为新一代信息技术&#xff0c;生成式人工智能通过…

文心一言 VS 讯飞星火 VS chatgpt (85)-- 算法导论8.2 2题

二、用go语言&#xff0c;试证明 COUNTING-SORT 是稳定的。 文心一言&#xff1a; 要证明 COUNTING-SORT 是稳定的&#xff0c;我们需要证明在排序过程中&#xff0c;具有相同值的元素在排序后仍保持其原始的相对顺序。COUNTING-SORT 是一种基于计数的排序算法&#xff0c;其…

【Spring Boot】Spring Boot 配置 Hikari 数据库连接池

文章目录 前言配置 前言 数据库连接池是一个提高程序与数据库的连接的优化&#xff0c;连接池它主要作用是提高性能、节省资源、控制连接数、连接管理等操作&#xff1b; 程序中的线程池与之同理&#xff0c;都是为了优化、提高性能。 配置 spring:datasource:hikari:# 设置是…

周报/月报 Prompt

前言 用 AI 写好一份周报或月报。 文章目录 前言一、目的二、Prompt 设计原则三、模板 一、目的 简单的日程&#xff0c;扩写成一篇高质量的周报&#xff1b; 二、Prompt 设计原则 角色 目标 背景 要求 三、模板 内容生成模板 你是我的周报助手&#xff0c;根据我的工作…

无涯教程-Android - ToggleButton函数

ToggleButton将已选中/未选中状态显示为按钮。它基本上是一个带有指示灯的开/关按钮。 Toggle Button ToggleButton属性 以下是与ToggleButton控件相关的重要属性。您可以查看Android官方文档以获取属性的完整列表以及可以在运行时更改这些属性的相关方法。 Sr.No.Attribute…

js 固定四点绘制梯形

可以通过 Canvas API 来实现固定四点绘制梯形。具体可以按照如下步骤&#xff1a; 创建一个 Canvas 元素。 <canvas id"myCanvas"></canvas>获取 Canvas 上下文。 const canvas document.getElementById(myCanvas); const ctx canvas.getContext(2d…

kafka复习:(23)事务

一、生产者&#xff0c;开启事务。 package com.cisdi.dsp.modules.metaAnalysis.rest.kafka2023;import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.clients.producer.ProducerRe…

【GoLang】go入门:go语言执行过程分析 常见数据类型(基本数据类型)

1、go语言执行过程分析 【1】执行流程分析 通过 go build 进行编译 运行上一步生成的可执行文件 通过 go run 命令直接运行 【2】上述两种执行流程的区别 在编译时&#xff0c;编译器会将程序运行时依赖的库文件包含在可执行文件中&#xff0c;所以可执行文件会变大很多通过g…

RPA技术介绍与应用价值

一、什么是RPA技术? RPA(Robotic Process Automation)机器人流程自动化,是一种能够模拟人类来执行重复性任务的新型技术。RPA可实现统筹安排、自动化业务处理,并提升业务工作流处理效率。用户只需通过图形方式显示的计算机操作界面对RPA软件进行动态设定即可。借助RPA (R…

多维时序 | Matlab实现BiLSTM-Adaboost和BiLSTM多变量时间序列预测对比

多维时序 | Matlab实现BiLSTM-Adaboost和BiLSTM多变量时间序列预测对比 目录 多维时序 | Matlab实现BiLSTM-Adaboost和BiLSTM多变量时间序列预测对比预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | Matlab实现BiLSTM-Adaboost和BiLSTM多变量时间序列预…

day-38 代码随想录算法训练营(19)动态规划part01

509.佩波纳契数列 思路&#xff1a; 1.dp存储第i个位置的数值2.递归公式&#xff1a;dp[i]dp[i-1]dp[i-2];3.初始化&#xff1a;dp[0]0,dp[1]14.遍历顺序&#xff1a;2-n 70.爬楼梯 思路&#xff1a; 1.dp存储的是&#xff0c;当前i位置&#xff0c;有dp[i]中方法到达2.dp[…