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

力扣2807.在链表中插入最大公约数

思路:遍历链表,对于每一个结点求出它与下一个结点的最大公约数并插入到俩个结点之间

代码: 

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* insertGreatestCommonDivisors(ListNode* head) {ListNode *p = head; //定义一个指针遍历链表                          while(p->next){int a = p->val, b = p->next->val, r = 1;    //取出当前结点和下一个结点的值while(r){   //辗转相除求最大公约数r = a % b;a = b;b = r;}p->next = new ListNode(a,p->next);  //插入新结点,值为最大公约数,next为p的nextp = p->next->next;  //p往后移俩个结点,因为插入了一个结点}return head;}
};

 

__gcd(x,y)函数,用于求x,y的最大公约数

优化后代码:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* insertGreatestCommonDivisors(ListNode* head) {ListNode *p = head;               while(p->next){p->next = new ListNode(__gcd(p->val, p->next->val), p->next);   //直接用__gcd函数求最大公约数p = p->next->next;}return head;}
};

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

相关文章:

  • 开始刷Leetcode之前你需要知道的 - The basic is all you need
  • 【PostgreSQL】模式Schema
  • JavaScript实现的复杂功能:自动生成带水印的图片
  • 图神经网络|8.2 图卷积的计算基本方法
  • equals()与hashCode()方法详解
  • 六、基于Flask、Flasgger、marshmallow的开发调试
  • TypeScript 从入门到进阶之基础篇(三) 元组类型篇
  • 现代CPU的多种运行模式
  • Python PDF处理模块pypdf库详解
  • C++上位软件通过LibModbus开源库和西门子S7-1200/S7-1500/S7-200 PLC进行ModbusTcp 和ModbusRTU 通信
  • PLSQL Developer 15安装和oracle客户端安装
  • 【深度deepin】深度安装,jdk,tomcat,Nginx安装
  • 解决flask启动报错:ImportError: DLL load failed while importing _dukpy: 找不到指定的程序
  • 腾讯面试总结
  • 面向对象进阶(static关键字,继承,方法重写,super,this)
  • Blazor项目如何调用js文件
  • Windows11 - Ubuntu 双系统及 ROS、ROS2 安装
  • 深度学习(学习记录)
  • html5实现好看的个人博客模板源码
  • SpringSecurity深度学习
  • odoo17 | 用户界面的基本交互
  • Intel 性能监视器之二
  • Vert.x学习笔记-什么是事件总线
  • STM32学习笔记二十二:WS2812制作像素游戏屏-飞行射击游戏(12)总结
  • astadmin安装querylist插件Puppeteer
  • Python从入门到网络爬虫(MySQL链接)
  • 2020年认证杯SPSSPRO杯数学建模A题(第二阶段)听音辨位全过程文档及程序
  • 深入理解CRON表达式:时间调度的艺术
  • 网络安全—模拟IP代理隐藏身份
  • Resilience4j相关问题及答案(2024)