leetcode刷题日记:202. Happy Number( 快乐数)和203. Remove Linked List Elements(移除链表元素)

202. Happy Number( 快乐数)

这一题的解决与之前的循环链表比较类似,因为如果不是快乐数的话,在数字变化的过程中必然遇到了数字变换的循环,所以我们需要在变换的过程中判断是否遇到了循环,判断是否在一个序列中存在循环,我们可以使用与之前在leetcode刷题日记:141. Linked List Cycle(环形链表)类似的思想,让一个数每次变化两次然后一个数每次变化一次,如果存在循环,两个数必然会出现相等的情况。
可以写出代码如下:

int HappyNumber(int n){
    int x = 0;
    while(n){
        int b = n%10;
        x += b*b;
        n/=10;
    }
    return x;
}
bool isHappy(int n) {
    int fast=0;
    int slow=1;
    fast = n;
    slow = n;
    int flag = 1;
    while(fast!=slow||flag){
        slow = HappyNumber(slow);
        fast = HappyNumber(fast);
        if(fast!=1){
            fast = HappyNumber(fast);
        }else{
            return 1;
        }
        flag = 0;
    }
    return 0;
}

运行结果截图如下:
在这里插入图片描述

203. Remove Linked List Elements(移除链表元素)

移除链表元素我们就按照移除链表的规则进行就行,注意链表头结点的特殊性。
画出图示如下:
删除头结点的操作
在这里插入图片描述
在这里插入图片描述
释放p所指向的空间,然后让p指向头结点
在这里插入图片描述
删除其他的结点的操作:
在这里插入图片描述
在这里插入图片描述

有了上述的思路我们可以写出下面的代码:

struct ListNode* removeElements(struct ListNode* head, int val) {
    struct ListNode * p = head, *q = NULL;
    while(p!=NULL){
        if(p->val==val){
            if(p==head){
                head = p->next;
                free(p);
                p = head;
            }else{
                q->next = p->next;
                free(p);
                p = q->next;
            }
        }else{
            q = p;
            p = p->next;
        }
    }
    return head;
}

运行结果截图:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/168402.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[uni-app] uni.showToast 一闪而过问题/设定时间无效/1秒即逝

toast一闪就消失 1.猜测频繁点击导致 – 排除 2.猜测再定时器内导致-- 排除 3.和封装的接口调用一起导致 - 是改原因 深挖发现: axios封装中, 对loading/hindloading进行了配置, 看来是 showToast 与 loading等冲突导致的 wx.hideLoading(Object object) 解决办法 再封装的…

前端CSS实现响应式TimeLine效果(附源码)

文章目录 纯CSS搭建,先上效果图(附有源码)视图层 index.htmlindex.css 公用样式文件Main.css 主要的样式文件纯CSS搭建,先上效果图(附有源码) 本效果为纯CSS搭建,适配移动端和PC端! 视图层 index.html <body class="light"><header class="he…

Scrum敏捷开发培训团队和组织来说的重要性

Scrum敏捷开发培训对于团队和组织来说是至关重要的&#xff0c;有以下几点&#xff0c;大家可以参考下&#xff1a; 理解敏捷价值观和原则&#xff1a; 培训有助于团队理解敏捷方法背后的核心理念和价值观&#xff0c;包括个体和互动、工作软件、客户合作和响应变化。这有助于建…

智慧商场数字孪生三维可视化大屏管理系统提升品牌形象

聚焦国家战略需求和先进制造业发展方向&#xff0c;加快数字化发展战略部署&#xff0c;数字孪生、工业互联网、工业物联网已被广泛认为是工业革命的新引擎。数字孪生公司正在推动工业制造从制造转向智造。通过数字化建模和仿真的方式&#xff0c;优化设计、生产、质量管理、供…

《opencv实用探索·一》QT+opencv实现图片拼接和Mat转QImage

本文利用opencv实现了几个好用的功能&#xff0c;包含两个文件&#xff0c;如下&#xff1a; 源码放在文章末尾 imageProcessing类包含三个功能&#xff1a; 1、图像拼接 cv::Mat imageMosaic(cv::Mat mat1, cv::Mat mat2, MosaicMode mosaicMode);mat1和mat2为两个待拼接的…

美国DDoS服务器:如何保护你的网站免遭攻击?

​  在当今数字化时代&#xff0c;互联网已经成为人们生活中不可或缺的一部分。随着互联网的普及和发展&#xff0c;网络安全问题也日益严重。其中&#xff0c;DDoS攻击是目前最常见和具有破坏性的网络攻击之一。那么&#xff0c;如何保护你的网站免遭DDoS攻击呢?下面将介绍…

CMMI之项目管理类核心框架

项目管理类过程域涵盖了与项目的计划、监督和控制相关的项目管理活动。 CMMI-DEV 中的七个项目管理类过程域是&#xff1a; • 集成项目管理&#xff08;Integrated Project Management&#xff0c; IPM&#xff09; • 项目监督与控制&#xff08;Project Monitoring and Cont…

23.11.19日总结(vue2和vue3的区别,项目中期总结)

经过昨天的中期答辩&#xff0c;其实可以看出来项目进度太慢了&#xff0c;现在是第十周&#xff0c;预计第十四周是终级答辩&#xff0c;在这段时间要把项目写完。 前端要加上一个未登录的拦截器&#xff0c;后端加上全局的异常处理。对于饿了么项目的商品建表&#xff0c;之前…

亚马逊高级API申请

一、背景介绍 亚马逊公司提供了丰富的API接口&#xff0c;以便开发者能够轻松地与其服务进行集成。这些API接口包括各种功能&#xff0c;如商品信息查询、订单处理、客户关系管理等。本文旨在帮助您如何申请亚马逊的高级API&#xff0c;并确保您的应用符合亚马逊公司的要求和标…

一图多码如何分解?快速做二维码解码的方法

当遇到一张图片里面有多个二维码时&#xff0c;想要将图片中的二维码分解成链接或者文本&#xff0c;该如何来操作呢&#xff1f;一般解决这个问题的方法多会通过使用二维码解码器来完成操作&#xff0c;那么对于还不知道的怎么操作的小伙伴&#xff0c;下面的方法可以来学习一…

【linux】 mpstat 使用

​mpstat mpstat 可以查看所有cpu的平均负载&#xff0c;也可以查看指定cpu的负载。所以mpstat其实就是主要查看CPU负载的一个工具。是一款常用的多核CPU性能分析工具&#xff0c;用来实时查询每个CPU的性能指标&#xff0c;以及所有CPU的平均指标。 mpstat 是sysstat中的一个工…

数据结构:lambda表达式

基本概念 语法 // 1. 不需要参数,返回值为 2 () -> 2 // 2. 接收一个参数(数字类型),返回其2倍的值 x -> 2 * x // 3. 接受2个参数(数字),并返回他们的和 (x, y) -> x y // 4. 接收2个int型整数,返回他们的乘积 (int x, int y) -> x * y // 5. 接受一个 string 对…

支持导入ics文件的提醒待办类工具

上个月腾讯待办突然发布因业务发展方向调整&#xff0c;腾讯待办将于2023年12月20日停运并下架&#xff0c;如需保存数据请在停运日期前导出数据&#xff0c;打开腾讯待办后会弹出保存数据的操作提示。 官方发布消息后&#xff0c;很多人不禁疑问&#xff1a;腾讯待办停运后还…

系列十、ReentrantReadWriteLock

一、概述 ReentrantReadWriteLock是ReadWriteLock的一个子类&#xff0c;具有读锁和写锁的双重功能&#xff0c;通常用于做缓存。 二、案例代码 2.1、ReentrantReadWriteLockCache /*** Author : 一叶浮萍归大海* Date: 2023/11/20 17:57* Description: 使用ReentrantReadWri…

淘宝商品详情数据接口(Taobao.item_get)

淘宝商品详情接口是一种程序化的接口&#xff0c;允许开发者根据商品ID或商品链接&#xff0c;获取淘宝平台上的商品详细信息。通过这个接口&#xff0c;开发者可以方便地获取商品的标题、价格、销量、描述等数据&#xff0c;进而提供给用户进行展示和购买。 使用淘宝商品详情…

【微信公众号开发】1.3 编辑模式之自动回复

一、内容 二、回复分类 首先开启自动回复 1. 关键词回复 2. 收到消息回复 3. 被关注回复 三、实战 1. 微信扫码关注 2. 回复1,2 一、内容 关注订阅号自动回复功能 二、回复分类 说明关键词回复可以根据设置关键字回复收到消息回复开发能力&#xff0c;灵活回复&…

STM32获取最大堆栈空间

参考 stackflow相关讨论 原理 通过参考链接&#xff0c;可知探测Stack的最大深度是先在stack中填充不常用的特定值&#xff0c;然后实时检测这些值哪些发生了变化&#xff0c;变化的表示使用到了这个空间&#xff0c;如果程序完全遍历后&#xff0c;有些值还是没变&#xff…

Django学习日志08

如何开启事务 事务的目的&#xff1a;为了保证多个SQL语句执行成功&#xff0c;执行失败&#xff0c;前后保持一致&#xff0c;保证数据安全 ACID属性&#xff1a; A&#xff1a;原子性&#xff08;Atomicity&#xff09;&#xff1a;指事务是原子的&#xff0c;对事务中的操…

二分查找——704. 二分查找

文章目录 1. 题目2. 算法原理2.1 暴力解法2.2 二分查找 3. 代码实现 1. 题目 题目链接&#xff1a;704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索…

NX二次开发UF_CAM_ask_cutter_db_object 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;里海NX二次开发3000例专栏 UF_CAM_ask_cutter_db_object Defined in: uf_cam.h int UF_CAM_ask_cutter_db_object(UF_CAM_db_object_t * db_obj ) overview 概述 This function provides the database object which is curre…