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

Leetcode数学部分笔记

Leetcode数学部分笔记

  • 1. 回文数
  • 2. 加一
  • 3. 阶乘后的零
  • 4. x 的平方根
  • 5. Pow(x, n)

1. 回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数
是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
在这里插入图片描述

解题思路:
把回文数转为String类型,然后让StringBuffer存储后再逆置,看看和原本的String相同不。

class Solution {public boolean isPalindrome(int x) {String str1 = String.valueOf(x);StringBuffer buffer = new StringBuffer();buffer.append(str1);return str1.equals(buffer.reverse().toString());   }
}

2. 加一

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
在这里插入图片描述

**解题思路:**逆序遍历这个数组,让最后一位加一,再让遍历的这一位和10取余,如果结果不为0,则说明没有进位,直接返回。如果遍历结果为0,则说明有进位,让倒数第二位继续加1,在判断是否有进位。
遍历一遍以后,如果都有进位,则说明需要扩大一个空间,让第一位为1。

在这里插入代码片
class Solution {public int[] plusOne(int[] digits) {int n = digits.length;for(int i = n-1;i >= 0; i--){digits[i] ++;digits[i] = digits[i] % 10;if(digits[i]!=0) return digits; }int[] digit = new int[n+1];digit[0] = 1;return digit;}
}

3. 阶乘后的零

给定一个整数 n ,返回 n! 结果中尾随零的数量。

提示 n! = n * (n - 1) * (n - 2) * … * 3 * 2 * 1
在这里插入图片描述
解题思路:用大白话讲一下找规律的思路:

我们先以n=7举个例子,看一下7!末尾有几个0。

我们把7!展开来看下:

7!=1∗2∗3∗4∗5∗6∗7
我们知道,只有2∗5才可以得到一个0,那我们只需要看7!可以分解为多少个2∗5就可以。

2出现的频率肯定是高于5的,因为:

每隔 2 个数就会包含因子2,比如2,4,6,…,
而每个 5 个数才会出现一个包含因子5的数,比如5,10,15,…
那我们的题目就可以转换为,n!最多可以分解出多少个因子5。

对于n!,5 的因子一定是每隔 5 个数出现一次,也就是下边的样子。

n!=1∗2∗3∗4∗(1∗5)∗…∗(2∗5)∗…∗(3∗5)∗…∗n
但我们还会发现,每隔 25(5*5) 个数字,出现的是 2 个 5,如下:

…∗(1∗5)∗…∗(1∗5∗5)∗…∗(2∗5∗5)∗…∗(3∗5∗5)∗…∗n
比如1∗5∗5,2∗5∗5,里面包含了 2 个 5。

同理,每隔 125(555)个数字,出现的是 3 个 5,如下:

…∗(1∗5)∗…∗(1∗5∗5∗5)∗…∗(2∗5∗5∗5)∗…∗(3∗5∗5∗5)∗…∗n
那么,我们要计算n!中一共有多少个因子5的话,计算方法方式就应该是:

每隔5个数出现一次的因子5的次数+每隔25个数出现一次的因子5的次数+…
也就是:

n/5+n/(5∗5)+n/(5∗5∗5)+…

class Solution {public int trailingZeroes(int n) {int count = 0;// 每次循环都将 n 除以 5,统计有多少个 5 的因数while (n >= 5) {n /= 5; // 每五个数中会引入一个 5count += n; // 统计所有包含 5 的数}return count; // 返回尾随零的数量}
}

4. x 的平方根

给你一个非负整数 x ,计算并返回 x 的 算术平方根 。

由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。

注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。
在这里插入图片描述
解题思路:二分查找,如果小于等于了,就存一个最大的mid,如果大于等于了,就让r = mid - 1

class Solution {public int mySqrt(int x) {int l = 0, r = x, ans = -1;while (l <= r) {int mid = l + (r - l) / 2;if ((long) mid * mid <= x) {ans = mid;l = mid + 1;} else {r = mid - 1;}}return ans;}
}

5. Pow(x, n)

实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。
在这里插入图片描述

把指数都变成正的,如果是负的则进行除法操作。
对指数N进行拆分,如果和2取余等于1,则说明需要称一次,其他时候乘两次

class Solution {public double myPow(double x, int n) {long N = n;return N >= 0 ? quickMul(x, N) : 1.0 / quickMul(x, -N);}public double quickMul(double x, long N) {double ans = 1.0;// 贡献的初始值为 xdouble x_contribute = x;// 在对 N 进行二进制拆分的同时计算答案while (N > 0) {if (N % 2 == 1) {// 如果 N 二进制表示的最低位为 1,那么需要计入贡献ans *= x_contribute;}// 将贡献不断地平方x_contribute *= x_contribute;// 舍弃 N 二进制表示的最低位,这样我们每次只要判断最低位即可N /= 2;}return ans;}
}

相关文章:

Leetcode数学部分笔记

Leetcode数学部分笔记 1. 回文数2. 加一3. 阶乘后的零4. x 的平方根5. Pow(x, n) 1. 回文数 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数 是指正序&#xff08;从左向右&#xff09;和倒序&…...

微信小程序web-view 嵌套h5界面 实现文件预览效果

实现方法&#xff1a;(这里我是在小程序里面单独加了一个页面用来下载预览文件) 安装 使用方法请参考文档 npm 安装 npm install weixin-js-sdk import wx from weixin-js-sdk预览 h5界面代码 <u-button click"onclick" type"primary" :loading"…...

【汽车】-- 燃油发动机3缸和4缸

3缸和4缸燃油发动机是小轿车常见的发动机配置。以下从结构特点、性能、经济性等方面对两者进行对比&#xff0c;并分析优缺点及使用注意事项&#xff1a; 1. 结构与运行原理 3缸发动机 特点&#xff1a;少一个气缸&#xff0c;内部零部件更少&#xff0c;整体结构更紧凑。优点…...

轻量级的 HTML 模板引擎

Mustache 简介&#xff1a;Mustache 是一个非常简单的逻辑少的模板引擎&#xff0c;支持 HTML 文件中的占位符替换。它不会执行复杂的逻辑&#xff0c;只支持简单的变量替换。 安装&#xff1a; npm install mustache示例&#xff1a; const Mustache require(mustache);c…...

Mysql | 尚硅谷 | 第02章_MySQL环境搭建

Mysql笔记&#xff1a;第02章_MySQL环境搭建 说明&#xff1a;本内容整理自尚硅谷B站MySQL视频>>尚硅谷B站MySQL视频 文章目录 Mysql笔记&#xff1a;第02章_MySQL环境搭建第02章_MySQL环境搭建 1. MySQL的卸载步骤1&#xff1a;停止MySQL服务步骤2&#xff1a;[软件](h…...

Maven学习(传统Jar包管理、Maven依赖管理(导入坐标)、快速下载指定jar包)

目录 一、传统Jar包管理。 &#xff08;1&#xff09;基本介绍。 &#xff08;2&#xff09;传统的Jar包导入方法。 1、手动寻找Jar包。并放置到指定目录下。 2、使用IDEA的库管理功能。 3、配置环境变量。 &#xff08;3&#xff09;传统的Jar包管理缺点。 二、Maven。 &#…...

CTF: 在本地虚拟机内部署CTF题目docker

step 1 安装基本依赖 sudo apt-get update sudo apt-get install -y \ca-certificates \curl \gnupg \lsb-releasestep 2 安装docker sudo apt-get remove docker docker.io containerd runc sudo apt-get update sudo apt-get install \apt-transport-https \ca-certificate…...

视频推拉流EasyDSS无人机直播技术巡查焚烧、烟火情况

焚烧作为一种常见的废弃物处理方式&#xff0c;往往会对环境造成严重污染。因此&#xff0c;减少焚烧、推广绿色能源和循环经济成为重要措施。通过加强森林防灭火队伍能力建设与长效机制建立&#xff0c;各地努力减少因焚烧引发的森林火灾&#xff0c;保护生态环境。 巡察烟火…...

SpringBoot【十一】mybatis-plus实现多数据源配置,开箱即用!

一、前言&#x1f525; 环境说明&#xff1a;Windows10 Idea2021.3.2 Jdk1.8 SpringBoot 2.3.1.RELEASE 正常情况下我们在开发系统的时候都是使用一个数据源&#xff0c;但是由于有些项目同步数据的时候不想造成数据库io消耗压力过大&#xff0c;便会一个项目对应多个数据源…...

【嵌入式linux基础】关于linux文件多次的open

在 Linux 中&#xff0c;设备文件可以被多次打开&#xff08;open()&#xff09;&#xff0c;但这取决于具体的设备类型和其驱动程序的实现。以下是关于设备文件多次打开的一些关键点&#xff1a; 普通字符设备&#xff1a; 对于大多数字符设备&#xff0c;如串口、TTY 设备等&…...

TPAMI 2023:When Object Detection Meets Knowledge Distillation: A Survey

摘要 目标检测&#xff08;Object Detection&#xff0c;OD&#xff09;是计算机视觉中的一项关键任务&#xff0c;多年来涌现出了众多算法和模型。尽管当前 OD 模型的性能有所提升&#xff0c;但它们也变得更加复杂&#xff0c;由于参数规模庞大&#xff0c;在工业应用中并不…...

2024前端面试题(持续更新)

目录 一、js的数据类型有哪些&#xff1f; 二、什么是symbol&#xff1f; 三、什么是浅拷贝什么是深拷贝&#xff1f; 四、vue2的生命周期&#xff1f; 五、vue2中父子组件的生命周期调用顺序 六、vue3的生命周期 七、vue3对比vue2的变化 八、组合式API中的ref和reactiv…...

apache转nginx访问变成下载解决方法

在配置文件 nginx.conf中存在 第一行&#xff1a; include mine.types 对应了文件的mime类型。 第二行&#xff1a; 默认的是octet-stream, 意思是如果一个文件的mime类型不存在就会使用默认的类型。 通常是这个导致了文件的下载。 第一种方案&#xff1a;&#xff08;推荐&a…...

【iOS】OC高级编程 iOS多线程与内存管理阅读笔记——自动引用计数(三)

目录 ARC规则 概要 所有权修饰符 __strong修饰符 __weak修饰符 __unsafe_unretained修饰符 __autoreleasing修饰符 ARC规则 概要 “引用计数式内存管理”的本质部分在ARC中并没有改变&#xff0c;ARC只是自动地帮助我们处理“引用计数”的相关部分。 在编译单位上可以…...

Oracle数据库使用dblink是时出现 ORA-12170:TNS:连接超时

原因&#xff1a; 我遇到这种情况是因为dblink那端的数据库被我重新导了一下dmp&#xff0c;然后本地这边查询就报错了。 解决办法&#xff1a; 把已有的dblink删掉或者说是换个名字&#xff0c;然后按照原来的再新建一个同名的dblink就解决了。...

OpenHarmony系统中实现Android虚拟化、模拟器相关的功能,包括桌面显示,详细解决方案

在 OpenHarmony 系统中实现 Android 虚拟化 和 模拟器功能&#xff08;面显包括桌示&#xff09;是一个复杂的任务&#xff0c;涉及多个关键技术栈的集成和深度定制。我们可以通过多种方式来实现 Android 系统的虚拟化和模拟器功能&#xff0c;类似于在普通操作系统中运行虚拟机…...

决策曲线分析(DCA)中平均净阈值用于评价模型算法(R自定义函数)

决策曲线分析&#xff08;DCA&#xff09;中平均净阈值用于评价模型算法 DCA分析虽然不强调用来评价模型算法或者变量组合的优劣&#xff0c;但是实际应用过程中感觉DCA曲线的走势和模型的效能具有良好的一致性&#xff0c;其实这种一致性也可以找到内在的联系&#xff0c;比如…...

《经验分享 · 软考系统分析师》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…...

记录一下 js encodeURI和encodeURIComponent URL转码问题

escape&#xff1a;由于它已经被废弃&#xff0c;不建议在任何新的代码中使用。encodeURI&#xff1a;当你需要对整个URI进行编码时使用&#xff0c;例如在将整个URL作为参数传递时。encodeURIComponent&#xff1a;当你需要编码URI中的某一部分&#xff0c;尤其是查询字符串参…...

【C语言】二维前缀和/求子矩阵之和

相信你是最棒哒&#xff01;&#xff01;&#xff01; 目录 一、题目描述 正确代码 二、题目描述 题目代码 总结 一、题目描述 输入一个 &#x1d45b; 行 &#x1d45a; 列的整数矩阵&#xff0c;再输入 &#x1d45e;个询问&#xff0c;每个询问包含四个整数 &#x1d465;1…...

SRS 服务器入门:实时流媒体传输的理想选择

在当今视频流媒体需求爆炸式增长的时代&#xff0c;如何选择一款高效、稳定且功能强大的流媒体服务器成为了许多开发者和企业关注的焦点。而 SRS&#xff08;Simple Realtime Server&#xff09;作为一款开源的流媒体服务器&#xff0c;以其卓越的性能和灵活的功能&#xff0c;…...

【ETCD】【源码阅读】configurePeerListeners() 函数解析

configurePeerListeners 是 ETCD 的一个核心函数&#xff0c;用于为集群中节点之间的通信配置监听器&#xff08;Peer Listener&#xff09;。这些监听器主要负责 Raft 协议的消息传递、日志复制等功能。函数返回一个包含所有监听器的列表。 函数签名 func configurePeerList…...

1_ssrf总结

content 什么是ssrf?简介原理 危害利用内网访问端口扫描fsockopenurlbypass127.0.0.0被禁止绕过302跳转DNS重绑定绕过 file协议dict协议gopher协议主从复制打redis打mysql打fastcgi协议打未授权redis Defence 什么是ssrf? 简介 SSRF&#xff08;Server-Side Request Forger…...

深入解析 Redis

1. 为什么 Redis 性能至关重要&#xff1f; 在现代分布式应用中&#xff0c;Redis 被广泛作为缓存系统、消息队列、实时数据存储和会话管理等多种场景的解决方案。作为一个高性能的内存数据库&#xff0c;Redis 的设计理念是提供低延迟和高吞吐量的操作。然而&#xff0c;当 R…...

Visual Studio 2022发布UWP应用证书绑定失败

最近发布UWP应用时&#xff0c;卡在了关联产品这步&#xff0c;一直提示网络链接问题&#xff0c;获取不到产品信息。创建新项目也是这样&#xff0c;猜测低版本的VS不支持发布UWP应用了&#xff0c;便升级到了VS2022。VS2022创建新UWP工程确实可以关联发布应用&#xff0c;并成…...

K8S对接ceph的RBD块存储

1 PG数量限制问题 1.1 原因分析 1.还是老样子&#xff0c;先创建存储池&#xff0c;在初始化为rbd。 [rootceph141~]# ceph osd pool create wenzhiyong-k8s 128 128 Error ERANGE: pg_num 128 size 3 for this pool would result in 295 cumulative PGs per OSD (2067 tot…...

ragflow连不上ollama的解决方案

由于前期wsl默认装在C盘&#xff0c;后期部署好RagFlow后C盘爆红&#xff0c;在连接ollama的时候一直在转圈圈&#xff0c;问其他人没有遇到这种情况&#xff0c;猜测是因为内存不足无法加载模型导致&#xff0c;今天重新在E盘安装wsl 使用wsl装Ubuntu Win11 wsl-安装教程 如…...

ACL与Prefix List(前缀列表)

匹配工具一般搭配其他操作&#xff0c;可实现NAT&#xff0c;路由策略&#xff0c;策略路由&#xff0c;MQC&#xff0c;流量过滤等操作 通配符掩码 我们都知道子网掩码的1是精确匹配&#xff0c;1是大致匹配&#xff0c;1必须连续 我们也知道反掩码的1是大致匹配&#xff0…...

OpenSSH和OpenSSL升级

需求 centos7.9升级SSH和SSL OpenSSH升级为openssh9.8 OpenSSL升级为openssl-3.4.0 下载openssh最新版本与openssl对应版本 openssh最新版本下载地址 wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gzOpenSSL下载地址 这里下载的是3.4.0 wg…...

数据库继续学习

数据库中的外键约束的作用是什么&#xff1f; 外键约束用于在多表操作中保证数据的一致性、完整性和正确性。它确保引用的数据在主表中存在&#xff0c;从而避免孤立记录的出现。 物理外键与逻辑外键的选择&#xff1f; 推荐使用逻辑外键。逻辑外键是指在应用程序层面上实现外键…...

web网站开发基础jar/重庆网站建设与制作

&#xff08;1&#xff09;MAC(Media Access Control)地址&#xff0c;或称为MAC位址、硬件位址&#xff0c;用来定义网络设备的位置&#xff0c;是被烧录在Network Interface Card(网卡NIC)里的。在网络底层的物理传输过程中&#xff0c;是通过物理地址来识别主机的&#xff0…...

专业做网站的公司有没有服务器/运营培训班学费大概多少

转载于:https://blog.51cto.com/xcf007/109359...

投资理财网站建设规划书/重庆网站优化排名推广

P2341 [HAOI2006]受欢迎的牛 题目描述 每头奶牛都梦想成为牛棚里的明星。被所有奶牛喜欢的奶牛就是一头明星奶牛。所有奶 牛都是自恋狂&#xff0c;每头奶牛总是喜欢自己的。奶牛之间的“喜欢”是可以传递的——如果A喜 欢B&#xff0c;B喜欢C&#xff0c;那么A也喜欢C。牛栏里…...

网站建设 报价单 doc/怎么联系百度客服

python中and和or的用法 From 《dive into python》 python 中的and从左到右计算表达式&#xff0c;若所有值均为真&#xff0c;则返回最后一个值&#xff0c;若存在假&#xff0c;返回第一个假值。 or也是从左到有计算表达式&#xff0c;返回第一个为真的值。 IDLE 1.2.4>&g…...

汽车之家网站是怎么做的/网站构建的基本流程

注意&#xff1a;以下内容如果没有特别申明&#xff0c;默认使用的EF6.0版本&#xff0c;code first模式。 推荐MiniProfiler插件 工欲善其事&#xff0c;必先利其器。 我们使用EF和在很大程度提高了开发速度&#xff0c;不过随之带来的是很多性能低下的写法和生成不太高效的sq…...

怎么介绍自己做的电影网站/seo网站推广

360手机N4S配置怎么样&#xff1f;360手机N4S值得购买吗&#xff1f;360手机N4S有几个版本&#xff1f;各版本有什么区别&#xff1f;下面脚本之家的小编就带来了360手机N4S各版本区别对比评测&#xff0c;一起来看看吧。外观设计360手机N4S是360手机N4的升级版&#xff0c;但是…...