[Leedcode][JAVA][第9题][回文数][数学法]

【问题描述】[简单]

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121
输出: true
示例 2:输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

【解答思路】

1. 整形转字符串/字符数组(额外空间)

1.x小于0 直接返回false
2.整形转为字符串后再转为字符数组
3.双指针一头一尾遍历字符数组,判段是否是回文数

时间复杂度:O(N) 空间复杂度:O(N)

class Solution {public boolean isPalindrome(int x) {String reversedStr = (new StringBuilder(x + "")).reverse().toString();return (x + "").equals(reversedStr);}
}
public boolean isPalindrome(int x) {if(x<0){return false;}char[] ch = String.valueOf(x).toCharArray();int len =  ch.length;int i = 0 ;int j = len-1;while(i<j){if(ch[i]!=ch[j]){return false;}i++;j--;}return true;}
2. 数字反转(可能溢出)
  • 如果是负数则一定不是回文数,直接返回 false
  • 如果是正数,则将其倒序数值计算出来,然后比较和原数值是否相等
  • 如果是回文数则相等返回 true,如果不是则不相等 false

比如 123 的倒序 321,不相等;121 的倒序 121,相等

时间复杂度:O(N) 空间复杂度:O(1)

public boolean isPalindrome(int x) {if(x < 0)return false;int cur = 0;int num = x;while(num != 0) {cur = cur * 10 + num % 10;num /= 10;}return cur == x;}
2. 数字反转一半

在这里插入图片描述

在这里插入图片描述

时间复杂度:O(N) 空间复杂度:O(1)

class Solution {public boolean isPalindrome(int x) {// 特殊情况:// 如上所述,当 x < 0 时,x 不是回文数。// 同样地,如果数字的最后一位是 0,为了使该数字为回文,// 则其第一位数字也应该是 0// 只有 0 满足这一属性if (x < 0 || (x % 10 == 0 && x != 0)) {return false;}int revertedNumber = 0;while (x > revertedNumber) {revertedNumber = revertedNumber * 10 + x % 10;x /= 10;}// 当数字长度为奇数时,我们可以通过 revertedNumber/10 去除处于中位的数字。// 例如,当输入为 12321 时,在 while 循环的末尾我们可以得到 x = 12,revertedNumber = 123,// 由于处于中位的数字不影响回文(它总是与自己相等),所以我们可以简单地将其去除。return x == revertedNumber || x == revertedNumber / 10;}
}

【总结】

1.越是简单题 往往含有的思想越巧妙
2.细节:

2.1 逆算数

while(num != 0) {cur = cur * 10 + num % 10;num /= 10;}

2.2 整形转字符数组

int x;
char[] ch = String.valueOf(x).toCharArray();

参考链接:https://leetcode-cn.com/problems/palindrome-number/solution/hua-jie-suan-fa-9-hui-wen-shu-by-guanpengchn/

参考链接:https://leetcode-cn.com/problems/palindrome-number/solution/hui-wen-shu-by-leetcode-solution/

参考链接:https://leetcode-cn.com/problems/palindrome-number/solution/dong-hua-hui-wen-shu-de-san-chong-jie-fa-fa-jie-ch/

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

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

相关文章

Weak Pair HDU - 5877 树状数组+离散化+DFS遍历

题意 给我们一颗有根有向树 以及每个点得权值a[1]~a[n] 需要我们求出在这颗树种有多少对满足以下两个条件的pair &#xff08;1&#xff09;u是v的祖先节点 &#xff08;2&#xff09;a[u]*a[v]< k N<1e5 a[i]<1e9 k<1e18 分析 由于需要在树中找符合要求的对…

【模板】最新空web.xml模板

<?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://xmlns.jcp.org/xml/ns/javaeehttp://x…

人眼的视觉特性

人眼的视觉特性 视觉系统基本构造 视觉过程 包括&#xff1a;光学过程&#xff1b;化学过程&#xff1b;神经处理过程 光学过程 物体在视网膜上成像 整体视觉过程 亮度适应能力 亮度适应能力 明亮较暗现象&#xff1f; 逐渐能够看清物体暗光适应(20~30s) 较暗明亮现象…

微信小程序测试的策略和注意事项

一、测试前准备&#xff08;环境搭建&#xff09; 1.前端页面 微信Web开发者工具安装、授权测试用的微信号可预览和调试小程序...可参考此文&#xff1a; 微信Web开发者工具-下载、安装和使用图解 2.管理后台 配置内网测试服务器环境&#xff0c;通过PC端Web站点管理小程序前端…

【解决问题】idea启动本地tomcat访问localhost:8080报404错误

把tomcat安装目录下webapp下的的ROOT文件夹配置到idea中 并且将/ROOT修改application context为 /

[Leedcode][第十题][剑指offer]面试题第[19]题[正则表达式][动态规划][递归][JAVA]

【问题描述】[困难] 请实现一个函数用来匹配包含. 和*的正则表达式。模式中的字符.表示任意一个字符&#xff0c;而*表示它前面的字符可以出现任意次&#xff08;含0次&#xff09;。在本题中&#xff0c;匹配是指字符串的所有字符匹配整个模式。例如&#xff0c;字符串"…

图像的采样和量化

图像的采样和量化 图像成像模型 图像的采样和量化 图像数字化 •将代表图像的连续(模拟)信号转换为离散(数字) 信号的过程称为图像数字化 •步骤&#xff1a;采样和量化 •主要技术 成像&#xff1a;光信息&#xff0d;>电信号 模数转换&#xff08;A/DConverter&…

Elegant Construction HDU-5813 构造

- 题意 给出我们从1-n城市的点能直接&#xff08;或间接&#xff09;到达的城市的数量作为这个点的权值 让我们判断并构造一个单向图 使得这个图完全契合给出的数据 special judge 任意一组结果就可以题目中给出 图中无环无回路- 分析 刚看到根据联通数目构造图 哇 这怎么做 好…

【解决问题】IDEA配置Tomcat添加Deployment时没有Artifact

下面这里别忘了把整个项目也拉到左边的output-root&#xff08;拉完之后会有个WEB-INF&#xff09;

java将数据生成csv文件

1&#xff0c;httpRequest接口触发进程[或者可以换成其他方式触发] /** * 出入库生成CSV文件 * param req * param params * return */RequestMapping(value "explanCsvFileToOrder")ResponseMessage explanCsvFileToOrder(HttpServletRequest req, RequestParam Ma…

像素间的关系

像素间的关系 像素空间的关系 图像由像素组成&#xff0c;像素在图像空间上按规 律排列&#xff0c;相互之间有一定的联系。 像素间联系 像素的邻域&#xff0d;邻接关系 •4邻域—— N 4( p )&#xff1a; p ( x , y ): ( x 1, y ); ( x -1, y) ( x , y 1); ( x , y -1) •…

Spring Cloud面试题

为什么需要学习Spring Cloud 什么是Spring Cloud 设计目标与优缺点 设计目标 优缺点 Spring Cloud发展前景 整体架构 主要项目 Spring Cloud Config Spring Cloud Netflix Spring Cloud Bus Spring Cloud Consul Spring Cloud Security Spring Cloud Sleuth Spring Cloud Stre…

HDU 5787 wolf Number 数位dp

题意 题目就是说让我们在l到r的数字中求得有多少个连续k为不相同的数 1≤L≤R≤1e18 2≤K≤5 Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)分析 直接枚举必然超时 考虑数位dp 由于k最大到5 所以我们可以记录前四位的大小 通过一个c…

【发现问题】IDEA设置全局新创建文件默认换行符

今晚读《阿里Java开发手册》的代码格式部分中&#xff0c;第十条强制规约引起了我的注意。说的是&#xff0c; IDE中文件的换行符使用UNIX格式&#xff0c;不要使用Windows格式。 于是上网搜索为何如此&#xff0c;得到以下答案&#xff1a; 在开发中&#xff0c;有可能会遇到某…

图像文件类型

图像的分类 按照图像的动态特性&#xff1a; •静止图像和运动图像 按照图像的色彩&#xff1a; •灰度图像和彩色图像 按照图像的维数&#xff1a; •二维图像&#xff0c;三维图像和多维图像。 位图是通过许多像素点表示一幅图像&#xff0c;每个 像素具有颜色属性和位置…

[Leedcode][JAVA][第739题][每日温度][暴力][单调栈]

【问题描述】[中等] 根据每日 气温 列表&#xff0c;请重新生成一个列表&#xff0c;对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高&#xff0c;请在该位置用 0 来代替。例如&#xff0c;给定一个列表 temperatures [73, 74, 75, 71, 69, 7…

MySQL学习笔记2

目录MySQL函数常用函数聚合函数&#xff08;常用&#xff09;数据库级别MD5加密&#xff08;拓展&#xff09;事务什么是事务索引索引的分类测试索引索引原则权限管理和备份用户管理MySQL备份规范数据库设计三大范式MySQL函数 常用函数 -- 数学运算SELECT ABS(-8) -- 绝对值 …

数位dp 模板

板子 ?? DP(pos,状态变量...,限制布尔){if(pos0)return 1;//一般每次执行到这里时的数是要算入总结果的 不一定是1 根据题目确定if(!limit&&dp[对应状态]!-1)return dp[对应状态]; //记忆化搜索int up limit?d[pos]:9;//表示如果前面一位有限制 就说明这是擦着区间…

拓展资源

1&#xff0e;人类的视觉感知系统 眼睛中的光接收器主要是视觉细胞&#xff0c;它包括锥状体和杆状体。中央凹&#xff08;或称中心窝&#xff09;部 分特别薄&#xff0c;这部分没有杆状体&#xff0c;只密集地分布锥状体。它具有辨别光波波长的能力&#xff0c;因此&#xff…

HTML5前端开发学习路线建议,学习前端的必备知识点

Web前端开发工程师是一个很新的职业&#xff0c;是从事Web前端开发工作的工程师。主要进行网站开发&#xff0c;优化&#xff0c;完善的工作。网页制作是Web 1.0时代的产物&#xff0c;那时网站的主要内容都是静态的&#xff0c;用户使用网站的行为也以浏览为主。 一位好的Web前…