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

【每日刷题】Day16

【每日刷题】Day16

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

1. 24. 两两交换链表中的节点 - 力扣(LeetCode)

2. 160. 相交链表 - 力扣(LeetCode)

3. 136. 只出现一次的数字 - 力扣(LeetCode)

1. 24. 两两交换链表中的节点 - 力扣(LeetCode)

 //0ms  100%思路:创建新链表,malloc新节点按照题目所给顺序存储原链表节点,新链表逐个连接新节点

typedef struct ListNode LN;


 

 int ListNodeQua(LN* phead)//计算原链表节点数

 {

    LN* pmove = phead;

    int count = 0;

    while(pmove)

    {

        count++;

        pmove = pmove->next;

    }

    return count;

 }

struct ListNode* swapPairs(struct ListNode* head)

{

    if(head==NULL)

    {

        return NULL;

    }

    if(head->next==NULL)

    {

        return head;

    }


 

    int n = ListNodeQua(head);

    LN* sentry = (LN*)malloc(sizeof(LN));//新链表哨兵位

    LN* pmove = head;//原链表奇数位节点

    LN* pmove1 = sentry;//用于遍历新链表连接新节点

    int i = 0;

    while(i<n/2)//交换次数即为循环次数

    {

        LN* pmove2 = pmove->next;//原链表偶数位节点

        LN* pget1 = (LN*)malloc(sizeof(LN));//新节点1

        pget1 = pmove2;//存储原链表偶数位节点

        pmove1->next = pget1;//连接新节点

        pmove1 = pmove1->next;//往后遍历以连接下一个节点

        LN* pget2 = (LN*)malloc(sizeof(LN));//新节点2

        pget2 = pmove;//存储原链表奇数位节点

        pmove->next = pmove2->next;//这里需要注意,由于原链表奇数位节点的next指向后一个偶数位节点,而下面我们在让新链表连接新节点时,会导致相邻两个节点成环,因此这里需要在新链表连接新节点前让奇数位节点的next指向下一个奇数位节点

        pmove1->next = pget2;//连接新节点

        pmove1 = pmove1->next;//往后遍历以连接下一个节点

        pmove = pmove->next;//由于上面我们奇数位节点next指向了下一个奇数位节点,因此这里直接走向next即可进行下一个交换

        i++;

    }

    LN* phead = head;

    if(n%2==1)//如果链表个数为奇数个,则在最后一次交换后会遗漏下最后一个节点,这里只需要直接将最后一个节点连接上即可

    {

        while(phead->next)

        {

            phead = phead->next;

        }

        pmove1->next = phead;

    }

    return sentry->next;

}

2. 160. 相交链表 - 力扣(LeetCode)

//思路:根据题目要求我们容易想到用两个指针遍历两个链表,当指针相等时就是相交的起始节点,直接返回。但是也容易发现一个问题,链表的长度不是严格相等的,因此,若是两个指针都在第一个节点同时遍历则可能会错过。那么我们这里的思路就是如何让两个指针刚好相遇——让较长的链表的指针先走过两链表长度差值的节点数。

typedef struct ListNode LN;

int ListNodeQua(LN* phead)//计算链表节点数

{

    LN* pmove = phead;

    int count = 0;

    while(pmove)

    {

        count++;

        pmove = pmove->next;

    }

    return count;

}


 

int my_abs(int x,int y)//返回两链表节点数差值(正数)

{

    return x>y?x-y:y-x;

}


 

struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB)

{

    if(headA==NULL||headB==NULL)

    {

        return NULL;

    }

    LN* pf1 = headA;

    LN* pf2 = headB;

    int a = ListNodeQua(headA);//链表A的节点数

    int b = ListNodeQua(headB);//链表B的节点数

    int x = my_abs(a,b);//两链表节点数差值的绝对值

    int flag = a>b?1:0;//用于判断需要哪个链表的指针走

    while(x)

    {

        if(flag)//如果flag为1,则说明链表A较长,则让pf1的指针走过x个节点

        {

            pf1 = pf1->next;

        }

        else//否则则是链表B较长,让pf2走过x个节点

        {

            pf2 = pf2->next;

        }

        x--;

    }

    while(pf1&&pf2)//这时再让pf1、pf2同时走,相遇时直接返回

    {

        if(pf1==pf2)

        {

            return pf1;

        }

        pf1 = pf1->next;

        pf2 = pf2->next;

    }

    return NULL;

}

3. 136. 只出现一次的数字 - 力扣(LeetCode)

//思路:这里需要知道的知识——

1、0^上任何数都等于任何数本身

2、两个相同的数^起来等于0

知道了这两个知识后,这道题就变得非常简单,因为数组中只有一个数字出现一次,其余的数字均出现了两次,那么我们用一个数(初始为0)^上这个数组中的每一个数,相同的数^在一起变为0,则^到最后就会变成0^上那个只出现了一次的数,而0^上任何数等于任何数,则直接返回最终^的结果即可

int singleNumber(int* nums, int numsSize)

{

    int num = 0;

    for(int i = 0;i<numsSize;i++)

    {

        num^=nums[i];

    }

    return num;

}

相关文章:

【每日刷题】Day16

【每日刷题】Day16 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 24. 两两交换链表中的节点 - 力扣&#xff08;LeetCode&#xff09; 2. 160. 相交链表 - 力扣&…...

【K8s】:在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从)

【K8s】&#xff1a;在 Kubernetes 集群中部署 MySQL8.0 高可用集群&#xff08;1主2从&#xff09; 一、准备工作二、搭建nfs服务器2.1 安装 NFS 服务器软件包&#xff08;所有节点执行&#xff09;2.2 设置共享目录2.3 启动 NFS 服务器2.4 设置防火墙规则&#xff08;可选&am…...

Vue内置组件TransitionGroup详细介绍

<TransitionGroup> 是一个内置组件&#xff0c;用于对 v-for 列表中的元素或组件的插入、移除和顺序改变添加动画效果。 和 <Transition> 的区别​ <TransitionGroup> 支持和 <Transition> 基本相同的 props、CSS 过渡 class 和 JavaScript 钩子监听器…...

【机器学习300问】71、神经网络中前向传播和反向传播是什么?

我之前写了一篇有关计算图如何帮助人们理解反向传播的文章&#xff0c;那为什么我还要写这篇文章呢&#xff1f;是因为我又学习了一个新的方法来可视化前向传播和反向传播&#xff0c;我想把两种方法总结在一起&#xff0c;方便我自己后续的复习。对了顺便附上往期文章的链接方…...

【ZZULIOJ】1067: 有问题的里程表(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy 提示 code 题目描述 某辆汽车有一个里程表&#xff0c;该里程表可以显示一个整数&#xff0c;为该车走过的公里数。然而这个里程表有个毛病&#xff1a;它总是从3变到5&#xff0c;而跳过数字4&#xff0c;里程表…...

A21 STM32_HAL库函数 之 I2c通用驱动程序 -- B -- 所有函数的介绍及使用

A21 STM32_HAL库函数 之 I2c通用驱动程序 -- B -- 所有函数的介绍及使用 1 该驱动函数预览1.12 HAL_I2C_Master_Sequential_Receive_IT1.13 HAL_I2C_Slave_Transmit_IT1.14 HAL_I2C_Slave_Receive_IT1.15 HAL_I2C_Slave_Sequential_Transmit_IT1.16 HAL_I2C_Slave_Sequential_R…...

简介:Asp.Net Core进阶高级编程教程

课程简介目录 &#x1f680;前言一、课程背景二、课程目的三、课程特点四、课程适合人员六、最后 &#x1f680;前言 本文是《.Net Core进阶编程课程》教程专栏的导航站&#xff08;点击链接&#xff0c;跳转到专栏主页&#xff0c;欢迎订阅&#xff0c;持续更新…&#xff09…...

Linux系统中LVM与磁盘配额

目录 一、LVM逻辑卷管理 二、LVM的管理命令 物理卷管理 卷组管理 逻辑卷管理 *创建并使用LVM步骤 三、磁盘配额概述 实现磁盘限额的条件 Linux 磁盘限额的特点 四、磁盘配额管理 磁盘限额 一、LVM逻辑卷管理 能够在保持现有数据不变的情况下动态调整磁盘容量&#…...

手机重启手app没了

发现公司有些Android球机设备&#xff0c;安装了一些app&#xff0c;重启后app没了&#xff0c;还有公司的一些Android手机&#xff0c;原来是没问题的&#xff0c;不知道哪天起&#xff0c;只要重启&#xff0c;新安装的软件就会没了&#xff0c;很神奇。后来发现&#xff0c;…...

github上传代码

偷一下懒&#xff0c;把链接贴一下&#xff0c;后续再补充。 1.下载Git 【学习笔记】上传代码到GitHub&#xff08;保姆级教程&#xff09; 2.如何创建GitHub仓库 手把手教你在github上传文件 3.如何删掉GitHub仓库 github如何删除仓库或项目&#xff1f; 4.遇到的错误 …...

Qt+vstudio2022的报错信息积累

从今天开始记录一下平常开发工作中的报错记录&#xff0c;后续有错误动态补充&#xff01; 报错信息&#xff1a;【MSB8041】此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何工具集和体系结构安装它们。 解决&#xff1a; 背景&#xff1a;换…...

力扣练习题(2024/4/16)

1买卖股票的最佳时机 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔…...

c++中一些常用库函数

1.最大公约数 需要包括头文件#include<algorithm>,直接写__gcd(a,b),就是求a与b的最大公约数。 #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #include<queue> #include<stack> #include<map>…...

竞赛 基于GRU的 电影评论情感分析 - python 深度学习 情感分类

文章目录 1 前言1.1 项目介绍 2 情感分类介绍3 数据集4 实现4.1 数据预处理4.2 构建网络4.3 训练模型4.4 模型评估4.5 模型预测 5 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于GRU的 电影评论情感分析 该项目较为新颖&#xff0c;适合作为竞…...

软件杯 深度学习图像修复算法 - opencv python 机器视觉

文章目录 0 前言2 什么是图像内容填充修复3 原理分析3.1 第一步&#xff1a;将图像理解为一个概率分布的样本3.2 补全图像 3.3 快速生成假图像3.4 生成对抗网络(Generative Adversarial Net, GAN) 的架构3.5 使用G(z)生成伪图像 4 在Tensorflow上构建DCGANs最后 0 前言 &#…...

java日志log4j使用

1、导入jar包 log4j-1.2.17.jar log4j-api-2.0-rc1.jar log4j-core-2.0-rc1.jar https://download.csdn.net/download/weixin_44201223/89148839 所需jar包下载地址 2、创建 log4j.properties src 下创建 log4j.properties (路径和名称都不允许改变)&#xff0c;放置 src 下…...

探索Python爬虫利器:Scrapy框架解析与实战

探索Python爬虫利器&#xff1a;Scrapy框架解析与实战 在当今信息时代&#xff0c;数据的价值不言而喻。而Python爬虫技术&#xff0c;作为获取网络数据的重要手段&#xff0c;已经成为了许多数据分析师、开发者和研究者必备的技能。本文将为您详细介绍Python爬虫技术中的利器—…...

Rust腐蚀服务器修改背景和logo图片操作方法

Rust腐蚀服务器修改背景和logo图片操作方法 大家好我是艾西一个做服务器租用的网络架构师。在我们自己搭建的rust服务器游戏设定以及玩法都是完全按照自己的想法设定的&#xff0c;如果你是一个社区服那么对于进游戏的主页以及Logo肯定会有自己的想法。这个东西可以理解为做一…...

【架构-15】NoSQL数据库

NoSQL&#xff08;Not Only SQL&#xff09;数据库是一类非关系型数据库&#xff0c;与传统的关系型数据库&#xff08;如MySQL、Oracle&#xff09;相对而言。NoSQL数据库的设计目标是针对大规模数据和高并发访问的需求&#xff0c;具有高可扩展性、高性能和灵活的数据模型。 …...

中国人工智能产业年会智能交通与自动驾驶专题全景扫描

中国人工智能产业年会&#xff08;CAIIAC&#xff09;是中国人工智能技术发展和应用的重要展示平台&#xff0c;不仅关注创新&#xff0c;还涵盖了市场和监管方面的内容&#xff0c;对于促进人工智能领域的发展起到了重要作用。年会汇集了来自学术界、工业界和政府的专家&#…...

Simplefolio数据库集成终极指南:5步搭建动态内容管理系统

Simplefolio数据库集成终极指南&#xff1a;5步搭建动态内容管理系统 【免费下载链接】simplefolio ⚡️ A minimal portfolio template for Developers 项目地址: https://gitcode.com/gh_mirrors/si/simplefolio Simplefolio是一款专为开发者设计的极简作品集模板&…...

为AI智能体构建长期记忆系统:零配置集成与四通道混合检索实践

1. 项目概述&#xff1a;为AI智能体装上“长期记忆”在AI智能体&#xff08;Agent&#xff09;的开发与使用中&#xff0c;一个长期存在的痛点就是“健忘症”。无论是基于OpenAI API还是本地部署的大模型&#xff0c;标准的对话模式都是无状态的——每次交互对于模型来说都是一…...

004、TinyML技术栈全景图:从模型到部署

004 TinyML技术栈全景图:从模型到部署 去年冬天调试一个智能门磁项目,板子是STM32L4,Flash只有256KB。模型在PC上跑F1值0.97,烧进去直接死机——不是推理结果不对,是内存分配直接溢出。我盯着map文件看了三个小时,最后发现是TensorFlow Lite Micro的arena大小设错了,多…...

Spring Boot 2026教育技术演示项目全栈架构与工程实践解析

1. 项目概述&#xff1a;一个面向未来的教育技术演示 最近在整理开源项目时&#xff0c;我注意到了 holzerjm/GACEP-Spring-2026-demo 这个仓库。乍一看&#xff0c;这个标题信息量不小&#xff0c;它像是一个技术演示&#xff0c;但前缀 GACEP 和 Spring-2026 又透露出…...

DRAM计算内存的电源传输网络优化策略

1. DRAM计算内存中的电源传输网络挑战与优化在数据密集型应用爆炸式增长的今天&#xff0c;传统冯诺依曼架构面临严峻的"内存墙"挑战。计算内存&#xff08;Compute-in-Memory, CIM&#xff09;技术通过在内存内部执行计算任务&#xff0c;从根本上改变了数据处理范式…...

开源数字白板the-board:基于React+Fabric.js的实时协作技术解析

1. 项目概述&#xff1a;一个开源的“数字白板”能做什么&#xff1f;最近在GitHub上看到一个挺有意思的项目&#xff0c;叫the-board。乍一看名字&#xff0c;可能觉得平平无奇&#xff0c;但点进去你会发现&#xff0c;它其实是一个功能相当完整的在线白板应用。简单来说&…...

CQDs-PEG/Biotin/@SiO2/Polymer,PEG修饰碳量子点的特性

中英文名称&#xff1a; CQDs-PEG&#xff0c;PEG修饰碳量子点 CQDs-Biotin&#xff0c;生物素偶联碳量子点 CQDsSiO2&#xff0c;二氧化硅包覆碳量子点 CQDsPolymer&#xff0c;聚合物包覆碳量子点 碳量子点&#xff08;Carbon Quantum Dots, CQDs&#xff09;作为一类新型零维…...

Laravel RSS聚合器larafeed:现代化内容聚合后端解决方案

1. 项目概述&#xff1a;一个为Laravel打造的现代化RSS聚合器如果你正在用Laravel构建一个内容聚合平台、新闻阅读器&#xff0c;或者只是想为自己的个人博客添加一个“我最近在读什么”的订阅墙&#xff0c;那么你很可能需要处理RSS或Atom源。手动解析这些XML格式的源、处理缓…...

从服务器到手机:手把手教你修改游戏客户端IP,让私服在手机上跑起来

移动游戏私服客户端IP修改实战指南 当你在服务器上成功部署了游戏私服后&#xff0c;最令人沮丧的莫过于发现手机上的官方客户端无法连接到你的私人服务器。这个看似简单的"最后一公里"问题&#xff0c;往往成为许多私服搭建者的拦路虎。本文将彻底解决这个痛点&…...

LangGraph、OpenClaw、Hermes:三种 Agent 路线,不是一回事

开头 这两年&#xff0c;只要聊到 Agent&#xff0c;绕不开三个名字&#xff1a;LangGraph、OpenClaw、Hermes。 它们都很火。 但也很容易被混在一起。 有人把 LangGraph 当成一个“Agent 产品”。 有人把 OpenClaw 当成一个“Agent 框架”。 也有人把 Hermes 理解成“另…...