IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 想要去欺负Leetcode的这些年—— 第一次 - 幂和对数 -> 正文阅读

[数据结构与算法]想要去欺负Leetcode的这些年—— 第一次 - 幂和对数

💓专栏介绍

自己写这个专栏的介绍主要是想帮自己身边关系最好的她熟悉一些算法,积累一些算法,浅培养一点算法素养吧。因为她有点小懒,让她去看y总的视频学算法也不现实,之前浅试过自己我自己设定一些层次的题,效果有点痛苦。


我自己在尝试把李煜东老师的《算法竞赛进阶指南》也做成一个专栏的,书中第一个算法讲的是位运算的,但是提供的题目就有状态压缩动态规划,对零基础相当不友好。
在这里插入图片描述
前阵子看到英雄哥之前早上直播的时候在弄《算法零基础100讲》,就想结合着英雄哥设定的学习顺序,他放置的习题,结合自己的理解然后编纂这个专栏的文章,尽量日更,假如忙不过来才两天一更的。不能说我抄袭哈,我自己是买了专栏的哈(狗头保命)
在这里插入图片描述

在这里插入图片描述

💓核心代码模式和ACM模式的介绍

我现在见到最多的两种模式分别是
leetcode为代表的核心代码模式;
y总acwing洛谷北大的POJ杭电的HDOJ浙大ZOJ还有俄罗斯的cf等等常使用的ACM模式了。

这两种模式各有所长吧,我只是练习ACM模式偏多一点,对核心代码模式不是特别的熟悉
在这里插入图片描述

📁核心代码模式

核心代码模式是这种:
在这里插入图片描述
用可爱的两数之和做做演示吧
在这里插入图片描述
可以自己着手去熟悉一下嗷~
题目链接

🔖ACM模式

ACM模式是这种的
在这里插入图片描述
依旧拿出咱可爱的两数之和吧,反复折磨(doge)
在这里插入图片描述
在这里插入图片描述
题目链接
看了两张图和图中的描述,大家大致清楚了两种模式的大致的区别了,其他啰嗦的说了也没有什么很大的用,就不赘述啦~
当前这个专栏是leetcode的核心代码模式了,然后C和C++的代码都会有的。
在这里插入图片描述

在这里插入图片描述

💓幂和对数的基础知识

?小建议

幂和对数应该是初中知识吧,之前听y总讲过,咱们现在做的算法题其实大部分是小学、初中、高中奥数的题,咱们现在这个阶段,倘若用数学的想法去弄,有些甚至可以用眼睛看出结果的
在这里插入图片描述
就比如这种题,但是落实到代码上,好像就没有那么轻松了,所有y总说,算法题也是训练大家的代码实现能力的。
在这里插入图片描述
所以希望一定要自己去敲出来,特别是某人,不要看着会了,就不去落实到代码上了。


🍏① 关于幂的知识

在这里插入图片描述

🍎② 关于对数的知识

在这里插入图片描述

🍑③ 换底公式

在这里插入图片描述

在这里插入图片描述

💓现学现用^ - ^

🍪第一题 231. 2 的幂

1、 模拟的写法,学会用无符号来防止溢出;
2、 pow函数返回值为double类型

💒题目描述

在这里插入图片描述
原题链接

🌟解题报告

倘若采用模拟的方式,就是常规的将去逐一枚举,不断的迭乘2来实现2的幂的效果,在枚举的途中判断有没有符合要求的。
也可以按照数学中的想法,比如想判断16是不是2的幂了,那么直接把16放到对数函数上进行处理,想判断3是不是也可以放到对数函数中进行处理。有个小细节了,就是加上一个精度,避免精度损失导致取整出错;


对于最后一步的判定相等,切记直接使用==来进行,因为pow函数的返回值是浮点型,对于浮点数的判等依赖于两个数的差的绝地址小于某个精度时,就认为它们相等,
即使用这种方式: f a b s ( a ? b ) < 1 e ? 8 fabs(a-b) < 1e^{-8} fabs(a?b)<1e?8


至于精度的选择,大多数情况下都是 1 e ? 8 1e^{-8} 1e?8

🌻参考代码(C/C++版本)

解法一:
C语言版本,C++用这个代码也是没有问题的,
在这里插入图片描述
解法二:
C++用这个代码也是没有问题的,就不额外再放C++的代码了。
在这里插入图片描述

在这里插入图片描述

🍩第二题 326. 3 的幂

唯一可取的了,是背一下2^31的数值是2147483648

💒题目描述

在这里插入图片描述
题目链接

🌟解题报告

上面一题的变型了,解题报告就不详细写啦~
在这里插入图片描述

🌻参考代码(C/C++版本)

解法一:
在这里插入图片描述
解法二:
在这里插入图片描述

在这里插入图片描述

🍰第三题 342. 4的幂

变型

💒题目描述

在这里插入图片描述
题目链接

🌟解题报告

这个就不写解题报告了吧~

🌻参考代码(C/C++版本)

解法一:
在这里插入图片描述
解法二:
在这里插入图片描述

在这里插入图片描述

💓总结

今天需要掌握的了:
① 幂和对数的知识得拿捏住吧

② 时刻注意数据范围,在数据范围比较大的时候,可能会出现溢出,记住无符号类型unsigned有自动取模的功能,可以有效的解决溢出问题

③ 记住2^312147483648

pow函数的返回值类型是浮点型,浮点型判等要利用精度。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 15:57:51  更:2022-05-01 15:59:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:47:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码