C/C++ leetcode刷题的各种小tips记录

这篇具有很好参考价值的文章主要介绍了C/C++ leetcode刷题的各种小tips记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、常见知识整理

1. 运算符优先级和结合

优先级 运算符 结合性
1

()(括号/函数运算符)        [](下标运算符)

 .(成员选择(对象))        ->(成员选择(指针))

从左到右
2

!(逻辑非)        ~(按位取反)

+(正)        -(负)

++        --

*(取值运算符)        &(取地址运算符)

(type)(强制类型转换)

从右到左
3 *(乘)        /(除)        %(取余) 从左到右
4 +(加)        -(减) 从左到右
5 <<(左移)        >>(右移) 从左到右
6

>(大于)        >=(大于等于)

<(小于)        <=(小于等于)

从左到右
7 ==(等于)        !=(不等于) 从左到右
8 &(按位与) 从左到右
9 ^(按位异或) 从左到右
10 |(按位或) 从左到右
11 &&(逻辑与) 从左到右
12 ||(逻辑或) 从左到右
13 ?:(条件运算符) 从右到左
14

=(赋值运算符)

/=        *=        %=

+=        -=

>>=        <<=

&=        |=        ^=

从右到左
15 ,(逗号运算符) 从左到右

2. 数据类型的字节数和数值范围

整数类型

类型 标识符 字节数 数值范围 表示方法

整形

无符号整型

int

unsigned

4 32bit

-2147483648 ~ 2147483647

0 ~ 4294967295

-2^31 ~ 2^31-1

0 ~ 2^32-1

0

0u

短整型

无符号短整型

short

unsigned short

2 16bit

-32768 ~ 32767

0 ~ 65535

-2^15 ~ 2^15-1

0 ~ 2^16 -1

-

长整型

无符号长整形

long

unsigned long

4 32bit

2147483648 ~ 2147483647

0 ~ 4294967295

-2^31 ~ 2^31-1

0 ~ 2^32-1

0l

0ul

字符型

无符号字符型

char

unsigned char

1 8bit

-128 ~ 127

0 ~ 255

-2^7 ~ 2^7-1

0~2^8-1

-

浮点数类型

类型 标识符 字节数 指数位宽 尾数位宽 取值范围 表示方法
单精度 float 4 8bit 23bit

-3.4×10^(38) ~ 3.4×10^(38)

0.0f
双精度 double 8 11bit

52bit

-1.7×10^(308) ~ 1.7×10^(308)

0.0

二、省时间省空间的代码操作

1. 用位移操作代替乘除

乘/除2

x << 1 代替 x * 2

x >> 1 代替 x / 2

判断奇偶数

x & 0x1 == 1 代替 x % 2 == 1 (奇数)

x & 0x1 == 0 代替 x % 2 == 0 (偶数)

2. 求绝对值

int型变量n的求绝对值方法为

unsigned n1 = n > 0 ? n : (unsigned) ~n + 1

注意:考虑到int型变量的边界,n的最小值是-2147483648,最大值是2147483647,因此最小值取绝对值后对于int型是溢出的,因此要强制类型转换成unsigned型。文章来源地址https://www.toymoban.com/news/detail-474808.html

到了这里,关于C/C++ leetcode刷题的各种小tips记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 算法刷题记录-树(LeetCode)

    算法刷题记录-树(LeetCode)

    思路(DFS 中序遍历) 考虑中序遍历的性质即可 代码 思路(DFS) 对于一个节点是否删除,有如下几种情况: 思路(DFS) 首先,需要通过dfs算法找到从原点到目标点的路径。 p a t h = [ 2 , 3 , 5 , 7 ] path=[2,3,5,7] p a t h = [ 2 , 3 , 5 , 7 ] , k = 2 k=2 k = 2 。其中7为目标点然后考虑对路径的每一节

    2024年02月09日
    浏览(8)
  • LeetCode刷题记录--- 微软企业题库

    😄 今天是2022年12月30号,我开始了LeetCode的《微软企业题库》专题 刷题! 😄 开了力扣plus会员了,可以看到各企业的出题情况和题目的出现频率,所以打算把各企业的出题指数第一页 (也就是top50题刷一遍),当然肯定有些题也是刷过的,那就当二刷。加油! 🚀 进度: 已完

    2024年02月08日
    浏览(12)
  • LeetCode 刷题记录——从零开始记录自己一些不会的

    LeetCode 刷题记录——从零开始记录自己一些不会的

    1. 最多可以摧毁的敌人城堡数目 题意 思路 两层循环,太low了 用一个变量记录前一个位置 代码 2. 到达终点的数字 题意 思路 代码 3. 单词的压缩编码 题意 思路 代码 思路2 去找到是否不同的单词具有相同的后缀,我们可以将其反序之后插入字典树中。例如,我们有 “time”

    2024年02月09日
    浏览(10)
  • LeetCode刷题记录——day3

    1、https://leetcode.cn/problems/gas-station/submissions/514930619/?envType=study-plan-v2envId=top-interview-150 对于这个问题可以这样来考虑,将数据看作一个环,如果答案唯一,那么就意味着从任意一个节点开始寻找,最后都会得到同一个节点的答案,那么为何不直接从0节点开始呢? 其次,我们可

    2024年03月21日
    浏览(8)
  • C++ 之LeetCode刷题记录(十二)

    C++ 之LeetCode刷题记录(十二)

    😄😊😆😃😄😊😆😃 开始cpp刷题之旅。 依旧是追求耗时0s的一天。 示例 1: 输入:x = 4 输出:2 示例 2: 输入:x = 8 输出:2 解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。 思路:这种题目一看就是二分法,很简单的题目,耗时0s,看代码。

    2024年01月18日
    浏览(7)
  • LeetCode刷题记录——day4

    https://leetcode.cn/problems/trapping-rain-water/description/?envType=study-plan-v2envId=top-interview-150 对于一个可以构成“碗”的序列,最后装满水的话应该和最短的一边齐平,那么可以左右各遍历一次,记录每个元素位置对应的最短边高度,再对比就可以得出左右哪边最短 总结,对于一些左右

    2024年03月23日
    浏览(5)
  • LeetCode高频算法刷题记录4

    LeetCode高频算法刷题记录4

    题目链接:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/ 参考题解:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/solution/er-cha-shu-de-zui-jin-gong-gong-zu-xian-by-leetc-2/ 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“

    2024年02月06日
    浏览(8)
  • C++ 之LeetCode刷题记录(十)

    C++ 之LeetCode刷题记录(十)

    😄😊😆😃😄😊😆😃 开始cpp刷题之旅,多学多练,尽力而为。 先易后难,先刷简单的。 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整

    2024年01月18日
    浏览(7)
  • C++ 之LeetCode刷题记录(十三)

    C++ 之LeetCode刷题记录(十三)

    😄😊😆😃😄😊😆😃 开始cpp刷题之旅。 依旧是追求耗时0s的一天。 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例

    2024年01月19日
    浏览(6)
  • LeetCode刷题记录——day1

    https://leetcode.cn/problems/h-index/description/?envType=study-plan-v2envId=top-interview-150 注:题目有点难理解,多读几遍 可以这样考虑,建立另一个临时数组 temp ,当第 i 篇文章被引用 citiations[i] 次时,令 j=citiations[i] 的 temp[j] 均加一,也就是现在对于任意 j 至少有 temp[j] 篇论文引用次数大

    2024年03月18日
    浏览(7)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包