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

Rust踩雷笔记(5)——刷点链表的题(涉及智能指针Box,持续更新)

目录

      • leetcode 2 两数相加——模式匹配+单链表+Box

只能说Rust链表题的画风和C++完全不一样,作为新手一时间还不太适应,于是单独为链表、智能指针开一篇,主要记录leetcode相关题型的答案以及注意事项。

leetcode 2 两数相加——模式匹配+单链表+Box

⭐️两个注意点
🍉里面有官方提供的单链表的实现,可以参考下;
🍉遍历链表可以用loop+match模式匹配的方式

// Definition for singly-linked list.
#[derive(PartialEq, Eq, Clone, Debug)]
pub struct ListNode {pub val: i32,pub next: Option<Box<ListNode>>
}impl ListNode {#[inline]fn new(val: i32) -> Self {ListNode {next: None,val}}
}impl Solution {pub fn add_two_numbers(l1: Option<Box<ListNode>>, l2: Option<Box<ListNode>>) -> Option<Box<ListNode>> {let mut t = (l1, l2, 0, 0);let mut result = None;let mut tail = &mut result;loop {t = match t {(None, None, _, 0) => break,(Some(l1), Some(l2), _, mut carry) => {let temp = l1.val + l2.val + carry;let res_temp = temp % 10;carry = temp / 10;(l1.next, l2.next, res_temp, carry)}(Some(l), None, _, mut carry) | (None, Some(l), _, mut carry) => {let temp = l.val + carry;let res_temp = temp % 10;carry = temp / 10;(l.next, None, res_temp, carry)}(None, None, _, carry) => {(None, None, carry, 0)}};*tail = Some(Box::new(ListNode::new(t.2)));tail = &mut tail.as_mut().unwrap().next;}result}
}

🍉#[inline] 是什么?
是Rust 中的一个属性,用于提示编译器尝试对函数进行内联展开优化。 内联展开是一种优化技术,可以将函数调用的地方替换为函数体的内容,减少了函数调用的开销,提高代码的执行速度。 通过在函数定义之前使用 #[inline] 属性,你可以向编译器发出建议,让它在合适的情况下尝试内联展开函数。

http://www.lryc.cn/news/139407.html

相关文章:

  • [附源码]计算机毕业设计-JAVA火车票订票管理系统-springboot-论-文-ppt
  • CARLA spawn Actor (Vehicle and Pedestrian)
  • 【官方中文文档】Mybatis-Spring #SqlSessionFactoryBean
  • el-tree树回显删除某项,再次点开树形组件无变化,实际数据已改变
  • 生产作业标准化是什么?生产车间作业流程标准化的步骤
  • CSS3盒模型+flex
  • 物种气候生态位动态量化与分布特征模拟
  • 微服务参数透传实现
  • leetcode 767. Reorganize String(重组字符串)
  • java八股文面试[数据结构]——List和Set的区别
  • 脑机接口里程碑!一天2篇Nature!
  • C语言strchr函数
  • Linux下的Shell基础——Shell概述和入门(一)
  • 当你在浏览器中输入了网址访问时产生了哪些技术步骤
  • 嵌入式Linux人脸检测libfacedetection
  • Hugo托管到Github Pages
  • Python经典面试题——在txt里面添加字段和数据
  • 【观察】打造以AI为导向的基础设施,联想锚定AI算力“主航道”
  • 预防缓存穿透工具类
  • 会员管理系统实战开发教程04-会员开卡
  • 数据结构(2)
  • 使用ELK(ES+Logstash+Filebeat+Kibana)收集nginx的日志
  • TDengine server连接遇到的坑
  • 什么是NetDevOps
  • 中小金融机构数字化转型最大的挑战是什么?
  • Facebook HiPlot “让理解高维数据变得容易”
  • 【python】:python新设备环境移植(requirements.txt)
  • 分类预测 | MATLAB实现1D-2D-CNN-GRU的多通道输入数据分类预测
  • 【LeetCode】125. 验证回文串 - 双指针
  • centos7设置java后端项目开机自启【脚本、开机自启】