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

[Go版]算法通关村第十三关青铜——数字数学问题之统计问题、溢出问题、进制问题

这里写自定义目录标题


很多数学相关算法的关键在于找到怎么通过最简洁的方式来解决问题,而不是硬算。

数字统计专题

题目:数组元素积的符号

题目链接:LeetCode-1822. 数组元素积的符号
在这里插入图片描述

思路分析:无需真计算,只需判断负数个数是奇是偶

复杂度:时间复杂度 O ( n ) O(n) O(n)、空间复杂度 O ( 1 ) O(1) O(1)

Go代码

func arraySign(nums []int) int {ret := 1for _, v := range nums {if v == 0 {return 0}if v < 0 {ret = -ret}}return ret
}

题目:阶乘尾数0的个数

题目链接:LeetCode-面试题 16.05. 阶乘尾数
在这里插入图片描述

思路分析:2和5能凑出1个0,而2出现的次数一定多于5,所以统计5的出现次数即可

复杂度:时间复杂度 O ( l o g n ) O(logn) O(logn)、空间复杂度 O ( 1 ) O(1) O(1)

Go代码

func trailingZeroes(n int) int {num := 0for n > 0 {n = n/5num += n}return num
}

溢出问题专题

题目:整数反转

题目链接:LeetCode-7. 整数反转
在这里插入图片描述

思路分析:依次除10得到余数进行值组装,注意溢出问题

复杂度:时间复杂度 O ( l o g n ) O(log n) O(logn)、空间复杂度 O ( 1 ) O(1) O(1)

Go代码

func reverse(x int) int {res := 0for x != 0 {// 获得末尾数字num := x%10// 判断是否大于最大整数if res > 0 && res > (math.MaxInt32-num)/10 {return 0 }// 判断是否小于最小整数if res <0 && res < (math.MinInt32-num)/10 {return 0}res = res*10 + numx = x/10}return res
}

题目:字符串转换整数 (atoi)

题目链接:LeetCode-8. 字符串转换整数 (atoi)
在这里插入图片描述

思路分析:去除空格 + 确定正负 + 读取数值 + 判断溢出

复杂度:时间复杂度 O ( n ) O(n) O(n)、空间复杂度 O ( 1 ) O(1) O(1)

Go代码

func myAtoi(s string) int {if len(s) == 0 {return 0}// 去除前面空格for i, v := range s {if v != ' ' {s = s[i:]break}}if len(s) == 0 {return 0}// 确定正负sign := 1if s[0] == '-' || s[0] == '+' {if s[0] == '-' {sign = -1}s = s[1:]}res, v := 0, 0length := len(s)// 读取数值for i:=0; i<length; i++ {if s[i] < '0' || s[i] > '9' {return res}v = int(s[i]-'0')// 判断越界if res > (math.MaxInt32-v)/10 {return math.MaxInt32}if res < (math.MinInt32+v)/10 {return math.MinInt32}res = res * 10 + sign * v}return res
}

题目:回文数

题目链接:LeetCode-9. 回文数
在这里插入图片描述

解法1:反转数字后对比是否一致,反转过程注意溢出问题

复杂度:时间复杂度 O ( l o g n ) O(log n) O(logn)、空间复杂度 O ( 1 ) O(1) O(1)

Go代码

func isPalindrome(x int) bool {if x < 0 {return false}num := 0oldx := xnewx := 0for x != 0 {num = x%10  //尾数if newx > (math.MaxInt32-num)/10 || newx < (math.MinInt32-num)/10 {return false}newx = newx*10 + numx = x/10}if newx == oldx {return true}return false
}

解法2:仅反转一半位数后对比是否一致,对比过程注意奇数位数的问题,但不用考虑溢出问题了(优化解法1)

复杂度:时间复杂度 O ( l o g n ) O(log n) O(logn)、空间复杂度 O ( 1 ) O(1) O(1)

Go代码

func isPalindrome(x int) bool {// 负数 和 余数是0但是本身不是0 时if x < 0  || (x%10==0 && x != 0) {return false}num := 0// 反转一半for x > num {num = num*10 + x%10x = x/10}// 考虑奇位数时,忽略中间数,比如12321 中的3if x == num || x == num/10 {return true}return false
}

进制专题

题目:七进制数

题目链接:LeetCode-504. 七进制数
在这里插入图片描述

思路分析:依次出7的余数,拼接后反转,注意拼接时负号要追加上

复杂度:时间复杂度 O ( l o g ∣ n ∣ ) O(log |n|) O(logn)、空间复杂度 O ( l o g ∣ n ∣ ) O(log |n|) O(logn)

Go代码

func convertToBase7(num int) string {if num == 0 {return "0"}sign := 1if num < 0 {sign = -1// 绝对值numnum = -1 * num}res := make([]byte, 0)var v bytefor num != 0 {// 余数依次是反转的原值v = byte(num%7 + '0')res = append(res, v)num = num/7}if sign < 0 {res = append(res, '-')}reverseArr(res, 0, len(res)-1)return string(res)
}
func reverseArr(arr []byte, left int, right int) {if left >= right {return}for left <= right {arr[left], arr[right] = arr[right], arr[left]left++right--}
}

题目:进制转换

题目链接:LeetCode-

思路分析:

复杂度:时间复杂度 O ( l o g n ) O(logn) O(logn)、空间复杂度 O ( 1 ) O(1) O(1)

Go代码

在这里插入代码片

相关文章:

[Go版]算法通关村第十三关青铜——数字数学问题之统计问题、溢出问题、进制问题

这里写自定义目录标题 数字统计专题题目&#xff1a;数组元素积的符号思路分析&#xff1a;无需真计算&#xff0c;只需判断负数个数是奇是偶复杂度&#xff1a;时间复杂度 O ( n ) O(n) O(n)、空间复杂度 O ( 1 ) O(1) O(1)Go代码 题目&#xff1a;阶乘尾数0的个数思路分析&am…...

GPT-4一纸重洗:从97.6%降至2.4%的巨大挑战

斯坦福大学和加州大学伯克利分校合作进行的一项 “How Is ChatGPTs Behavior Changing Over Time?” 研究表明&#xff0c;随着时间的推移&#xff0c;GPT-4 的响应能力非但没有提高&#xff0c;反而随着语言模型的进一步更新而变得更糟糕。 研究小组评估了 2023 年 3 月和 20…...

大数据Flink学习圣经:一本书实现大数据Flink自由

学习目标&#xff1a;三栖合一架构师 本文是《大数据Flink学习圣经》 V1版本&#xff0c;是 《尼恩 大数据 面试宝典》姊妹篇。 这里特别说明一下&#xff1a;《尼恩 大数据 面试宝典》5个专题 PDF 自首次发布以来&#xff0c; 已经汇集了 好几百题&#xff0c;大量的大厂面试…...

什么是微服务?

2.微服务的优缺点 优点 单一职责原则每个服务足够内聚&#xff0c;足够小&#xff0c;代码容易理解&#xff0c;这样能聚焦一个指定的业务功能或业务需求&#xff1b;开发简单&#xff0c;开发效率提高&#xff0c;一个服务可能就是专一的只干一件事&#xff1b;微服务能够被小…...

【C++入门到精通】C++入门 —— 容器适配器、stack和queue(STL)

阅读导航 前言stack1. stack概念2. stack特点3. stack使用 queue1. queue概念2. queue特点3. queue使用 容器适配器1. 什么是适配器2. STL标准库中stack和queue的底层结构3. STL标准库中对于stack和queue的模拟实现⭕stack的模拟实现⭕stack的模拟实现 总结温馨提示 前言 文章…...

系统架构设计专业技能 · 软件工程之需求工程

系列文章目录 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA&#xff08;一&#xff09;【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估&#xff08;二&#xff09;【系统架构设计师】 系统架构设计高级技能 软件可靠性分析与设计…...

2023国赛数学建模E题思路模型代码 高教社杯

本次比赛我们将会全程更新思路模型及代码&#xff0c;大家查看文末名片获取 之前国赛相关的资料和助攻可以查看 2022数学建模国赛C题思路分析_2022国赛c题matlab_UST数模社_的博客-CSDN博客 2022国赛数学建模A题B题C题D题资料思路汇总 高教社杯_2022国赛c题matlab_UST数模社…...

Baumer工业相机堡盟工业相机如何通过BGAPISDK设置相机的Bufferlist序列(C++)

Baumer工业相机堡盟工业相机如何通过BGAPISDK设置相机的Bufferlist序列&#xff08;C&#xff09; Baumer工业相机Baumer工业相机的Bufferlist序列功能的技术背景CameraExplorer如何查看相机Bufferlist功能在BGAPI SDK里通过函数设置相机Bufferlist参数 Baumer工业相机通过BGAP…...

从 Ansible Galaxy 使用角色

从 Ansible Galaxy 使用角色 根据下列要求&#xff0c;创建一个名为 /home/curtis/ansible/roles.yml 的 playbook &#xff1a; playbook 中包含一个 play&#xff0c; 该 play 在 balancers 主机组中的主机上运行并将使用 balancer 角色。 此角色配置一项服务&#xff0c;以…...

ROS与STM32通信(二)-pyserial

文章目录 下位机上位机自定义msg消息发布订阅 ROS与STM32通信一般分为两种&#xff0c; STM32上运行ros节点实现通信使用普通的串口库进行通信&#xff0c;然后以话题方式发布 第一种方式具体实现过程可参考上篇文章ROS与STM32通信-rosserial&#xff0c;上述文章中的收发频率…...

[oneAPI] 使用Bert进行中文文本分类

[oneAPI] 使用Bert进行中文文本分类 Intel Optimization for PyTorch基于BERT的文本分类模型数据预处理数据集定义tokenize建立词表转换为Token序列padding处理与mask 模型 结果OneAPI参考资料 比赛&#xff1a;https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517…...

【数据治理】什么是数据库归档

文章目录 前言什么是数据归档 前言 如果您的日常工作中需要对数据库进行管理&#xff0c;那您肯定已经或即将遭遇这样的困惑&#xff1a;随着业务的蓬勃发展&#xff0c;数据库文件的大小逐渐增大&#xff0c;您需要为在线业务提供越来越大的高性能磁盘容量&#xff0c;但数据…...

AI代码补全 案例 - 阿里云智能编码插件Cosy

文章目录 Cosy简介Cosy安装Marketplace安装【推荐】离线安装安装效果Cosy功能体验代码智能补全代码示例搜索API搜索自然语言搜索控制台异常搜索优质文档搜索Cosy体验有感参考Cosy简介 阿里云智能编码插件(Alibaba Cloud AI Coding Assistant)是一款AI编程助手,提供代码智能…...

【Linux】进程信号篇Ⅰ:信号的产生(signal、kill、raise、abort、alarm)、信号的保存(core dump)

文章目录 一、 signal 函数&#xff1a;用户自定义捕捉信号二、信号的产生1. 通过中断按键产生信号2. 调用系统函数向进程发信号2.1 kill 函数&#xff1a;给任意进程发送任意信号2.2 raise 函数&#xff1a;给调用进程发送任意信号2.3 abort 函数&#xff1a;给调用进程发送 6…...

漏洞指北-VulFocus靶场专栏-中级03

漏洞指北-VulFocus靶场专栏-初级03 中级009 &#x1f338;gxlcms-cve_2018_14685&#x1f338;step1&#xff1a;安装系统 密码rootstep2 进入后台页面 账号密码&#xff1a;admin amdin888step3 查看详细 有phpinfo() 中级010 &#x1f338;dedecms-cnvd_2018_01221&#x1f3…...

【leetcode 力扣刷题】数组交集(数组、set、map都可实现哈希表)

数组交集 349. 两个数组的交集排序&#xff0b;双指针数组实现哈希表unordered_setunordered_map 350. 两个数组的交集Ⅱ排序 双指针数组实现哈希表unordered_map 349. 两个数组的交集 题目链接&#xff1a;349. 两个数组的交集 题目内容如下&#xff0c;理解题意&#xff1a…...

MySQL 8.0.31 登录提示caching_sha2_password问题解决方法

MySQL 8.0.31 登录提示caching_sha2_password问题解决方法 MySQL 8.0.31 使用了 caching_sha2_password 作为默认的身份验证插件&#xff0c;这可能导致一些旧的客户端和库无法连接到服务器。以下是一些解决此类问题的常见步骤和建议&#xff1a; 确保MySQL服务正在运行&#…...

[Google] DeepMind Gemini: 新一代LLM结合AlphaGo技术将力压 GPT-4|未来 AI 领域的新巨头

2016年&#xff0c;Google DeepMind 人工智能实验室孕育出的 AlphaGo 人工智能程序在围棋赛场上一举击败冠军选手&#xff0c;成为历史的见证者。如今&#xff0c;DeepMind 联合创始人兼首席执行官 Demis Hassabis 表示&#xff0c;他们的工程师正借鉴 AlphaGo 的技术研发一款名…...

Maven高级

目录 一、分模块开发与设计 1. 分模块开发的意义 2. 分模块开发&#xff08;模块拆分&#xff09; &#xff08;1&#xff09;创建Maven模块 &#xff08;2&#xff09;书写模块代码 &#xff08;3&#xff09;通过maven指令安装模块到本地仓库&#xff08;install指令&…...

【视觉SLAM入门】5.2. 2D-3D PNP 3D-3D ICP BA非线性优化方法 数学方法SVD DLT

"养气之学&#xff0c;戒之躁急" 1. 3D-2D PNP1.1 代数法1.1.1 DLT(直接线性变换法)1.1.2. P3P 1.2 优化法BA (Bundle Adjustment)法 2. 3D-3D ICP2.1 代数法2.1.1 SVD方法 2.2 优化(BA)法2.2.2 非线性优化方法 前置事项&#xff1a; 1. 3D-2D PNP 该问题描述为&am…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...