【LeetCode】1000题挑战(230/1000)

news2024/11/18 5:58:19

1000题挑战

没有废话,直接开刷!

目录

1000题挑战

没有废话,直接开刷!

第一题:242. 有效的字母异位词 - 力扣(Leetcode)

题目接口:

解题思路:

代码:

过过过过啦!!!!

第二题:257. 二叉树的所有路径 - 力扣(Leetcode)

题目接口:

解题思路:

代码:

过过过过啦!!!!

第三题:258. 各位相加 - 力扣(Leetcode)

题目接口:

解题思路:

代码:

过过过过啦!!!!

第四题:263. 丑数 - 力扣(Leetcode)

题目接口:

解题思路:

代码:

过过过过啦!!!!

第五题:290. 单词规律 - 力扣(Leetcode)

题目接口:

解题思路:

代码:

过过过过啦!!!!

题量截图:

写在最后:


第一题:242. 有效的字母异位词 - 力扣(Leetcode)

题目接口:

class Solution {
public:
    bool isAnagram(string s, string t) {

    }
};

解题思路:

这道题有两种思路:

1. 我一开始想到就是哈希

2. 直接排序开摆

代码:

class Solution {
public:
    bool isAnagram(string s, string t) {
        sort(s.begin(), s.end());
        sort(t.begin(), t.end());
        return s == t;
    }
};

过过过过啦!!!!

第二题:257. 二叉树的所有路径 - 力扣(Leetcode)

题目接口:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    vector<string> binaryTreePaths(TreeNode* root) {

    }
}; 

解题思路:

这道题的可以用dfs也可以用bfs。

我用的是dfs,

具体思路是:

用深搜搜索每一条路径,

如果走到了叶子节点,就把这一条路径记录下来,

搜索完整棵树,所有路径就都出来了。

代码:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    vector<string> binaryTreePaths(TreeNode* root) {
        vector<string> path;
        _tree_path(root, "", path); //dfs搜索
        return path;
    }
private:
    void _tree_path(TreeNode* root, string paths, vector<string>& path) {
        if(root != nullptr) {
            paths += to_string(root->val);
            if(!root->left && !root->right) { //到叶子结点了,就插入路径
                path.push_back(paths);
            }
            else {
                paths += "->";
                _tree_path(root->left, paths, path); //搜索左子树
                _tree_path(root->right, paths, path); //搜索右子树
            }
        }
    }
}; 

过过过过啦!!!!

第三题:258. 各位相加 - 力扣(Leetcode)

题目接口:

class Solution {
public:
    int addDigits(int num) {

    }
}; 

解题思路:

这道题就是一个简单模拟,

不过题目提出了一个挑战,

就是让我们用O(1)的方法解决,

这个其实需要推导出数学公式。

我就只是简单模拟了,下面是代码:

代码:

class Solution {
public:
    int addDigits(int num) {
        int sum = num;
        while(sum > 9) {
            sum = 0;
            while(num) {
                sum += num % 10;
                num /= 10;
            }
            num = sum;
        }
        return sum;
    }
}; 

过过过过啦!!!!

第四题:263. 丑数 - 力扣(Leetcode)

题目接口:

class Solution {
public:
    bool isUgly(int n) {

    }
};

解题思路:

这道题需要用到数学方法来做,

作为数学学渣,我就只能用暴力求解了:

代码:

class Solution {
public:
    bool isUgly(int n) {
        if(n == 0) return false;
        while(n % 2 == 0) n /= 2;
        while(n % 3 == 0) n /= 3;
        while(n % 5 == 0) n /= 5;
        return n == 1;
    }
};

过过过过啦!!!!

第五题:290. 单词规律 - 力扣(Leetcode)

题目接口:

class Solution {
public:
    bool wordPattern(string pattern, string s) {
        
    }
};

解题思路:

这道题需要用哈希去解,

用两个哈希双射,然后遍历,

如果有值对应不上就返回false即可。

代码:

class Solution {
public:
    bool wordPattern(string pattern, string s) {
        unordered_map<string, char> pas;
        unordered_map<char, string> spa;
        int n = s.size(), i = 0;
        for(auto ch : pattern) {
            if(i == n + 1) return false; //两个字符串的个数不匹配
            int j = i;  
            while(j < n && s[j] != ' ') j++; //更新右边界
            const string& tmp = s.substr(i, j - i); //截取s里面的字符串

            //如果该值存在哈希里面且不等于对应的值,则返回false
            if(pas.count(tmp) && pas[tmp] != ch) return false;
            if(spa.count(ch) && spa[ch] != tmp) return false;

            //把值存进哈希
            pas[tmp] = ch; 
            spa[ch] = tmp;
            i = j + 1; //更新左边界
        }
        return i == n + 1; //两个字符串的个数匹配
    }
};

过过过过啦!!!!

题量截图:

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

罗马数字转整数:探究古代数字编码的奥秘

本篇博客会讲解力扣中“13. 罗马数字转整数”这道题的解题思路。 大家先来审下题&#xff1a;题目链接。 题干如下&#xff1a; 有几个输出样例&#xff1a; 提示如下&#xff1a; 大家先思考一下&#xff0c;再来听我讲解。 本题的关键是&#xff1a;如何把罗马数字转换…

文末赠书3本 | 盼了一年的Core Java最新版卷Ⅱ,终于上市了

文章目录 盼了一年的Core Java最新版卷Ⅱ&#xff0c;终于上市了&#xff01;Core Java基于Java 17全面升级Core Java最新版卷Ⅱ现已上市卷Ⅰ、卷Ⅱ有何不同&#xff1f;如何阅读《Java核心技术》从未远离工业界的Java大神带你学50位行业专家、技术媒体赞誉推荐如何选择版本文末…

Python基础入门(2)—— 什么是控制语句、列表、元组和序列?

文章目录 01 | &#x1f684;控制语句02 | &#x1f685;列表03 | &#x1f688;元组04 | &#x1f69d;序列05 | &#x1f69e;习题 A bold attempt is half success. 勇敢的尝试是成功的一半。 前面学习了Python的基本原则、变量、字符串、运算符和数据类型等知识&#xff0c…

树形结构——堆的构建

在学习完我们的树形结构之后我们再来使用树形结构的思想构建一个堆。使用堆可以对我们的数据进行排序&#xff0c;并且堆排序的效率要远优于我们之前学习过的冒泡排序。下面我们来逐步实现堆这个数据结构。 在构建堆之前我们需要先介绍以下我们树形结构构建的两种形式&#xff…

掌握这些GitHub搜索技巧,你的开发效率将翻倍!

作为开发it行业一员&#xff0c;学习借鉴他人项目是很有必要的&#xff0c;所以我们一般都会从github或者 Gitee 上面去参考借鉴他人的项目来学习增加自己的项目经验 但是一般我还是在github上看项目比较多&#xff0c;毕竟人家实力项目量摆在那里 &#xff0c;但是国内访问gi…

Spring Cloud的那些组件和功能,get到了吗

Spring Cloud 是 Spring 技术栈生态很重要的一部分&#xff0c;面向大型网站服务端的开发和架构设计&#xff0c;它以 Spring/SpringBoot 为基础&#xff0c;提供的一系列组件规范和具体实现。 一、概述 Spring Cloud 提供了用于更快速构建分布式系统的基础规范&#xff08;例…

“深入”理解字节对齐

文章目录 前言思考查阅资料[Byte alignment and ordering](https://www.eventhelix.com/embedded/byte-alignment-and-ordering/)Byte Alignment RestrictionsWhy Restrict Byte Alignment?Compiler Byte PaddingUser Defined StructureActual Structure Definition Used By t…

使用SaleSmartly自动化流程的 5 个原因

想象一下&#xff0c;如果您可以采用智能数字解决方案来减轻团队和公司的手动和重复业务流程负担。它可以帮助您节省时间、提高公司的底线、消除冗余并增强数据管理。SaleSmartly&#xff08;ss客服&#xff09;就是这样。 通过利用自动化的力量&#xff0c;SaleSmartly&#x…

牛客网专项练习Pytnon分析库(一)

1.提取出a和b两个数组中的公共项,可以使用numpy库中的哪个函数&#xff08;A&#xff09;。 A.np.intersect1d(a,b) B.np.setdiff1d(a,b) C.np.where(a b) D.np.lexsort((a,b)) 解析&#xff1a; A选项&#xff0c;np.intersect1d用来获取数组a和数组b之间的公共项&…

MySQL遇到过死锁问题吗,你是如何解决的?

MySQL遇到过死锁问题吗&#xff0c;你是如何解决的&#xff1f; 问题解析 死锁&#xff0c;就是两个或者两个以上的线程在执行过程中&#xff0c;去争夺同一个共享资源导致互相等待的现象。 在没有外部干预的情况下&#xff0c;线程会一直处于阻塞状态&#xff0c;无法往下执行…

理解FPGA的基础知识——逻辑电路

FPGA (Field Programmable Gate Aray,现场可编程门阵列)是一种可通过重新编程来实现用户所需逻辑电路的半导体器件。为了便于大家理解FPGA的设计和结构&#xff0c;我们先来简要介绍一些逻辑电路的基础知识。 1.逻辑代数 逻辑代数中的变量称为逻辑变量&#xff0c;用大写字母表…

Arduino ESP32 ESP-Rainmaker点灯示例

Arduino ESP32 ESP-Rainmaker点灯示例 &#x1f4cc;基于ESP-IDF工程相关篇《ESP32 ESP-Rainmaker 本地点灯控制Demo测试》&#x1f388;原项目地址&#xff1a;https://github.com/espressif/esp-rainmaker&#x1f516;本次所测试的项目示例工程&#xff1a;\esp-rainmaker—…

backtrader的cs功能介绍

cs框架的优点和缺点 优点和ts一样,就是速度非常快缺点有好几个:必须使用根据过去一定天数计算因子值,持有一定天数之后再平衡的模式;必须使用连续的数据,如果是期货期权等需要合成连续数据。资金不足的时候不会拒单。cs框架使用方法 设计理念 计算因子由用户进行计算,因…

用科技创造未来!流辰信息技术助您实现高效办公

随着社会的迅猛发展&#xff0c;科技的力量无处不见。它正在悄悄地改变整个社会&#xff0c;让人类变得进步和文明&#xff0c;让生活变得便捷和高效。在办公自动化强劲发展的今天&#xff0c;流辰信息技术让通信业、电网、汽车、物流等领域的企业实现了高效办公&#xff0c;数…

工具及方法 - 安装播放器pot player

官网下载&#xff1a; potplayer.daum.net 可能国内访问有问题&#xff0c;还有一个网站&#xff1a; Global Potplayer 或者为了纯净安全些&#xff0c;找下国外可下载网站&#xff1a; PotPlayer 230407 / 230504 Beta Free Download - VideoHelp 下载后安装即可&#xff…

红蜻蜓利用档案数字化管理,实现业务管理降本增效

在数字化大背景下&#xff0c;红蜻蜓积极拥抱数字化档案&#xff0c;全面优化档案管理成本&#xff0c;保证组织档案安全可信&#xff0c;助力企业业务高质量发展。 关于红蜻蜓 红蜻蜓&#xff0c;创始于1995年&#xff0c;是一家多品牌、多品类的时尚鞋履品牌运营商&#xf…

欧科云链OKLink:2023年4月安全事件盘点

一、基本信息 2023年4月安全事件共造约6000万美金的损失&#xff0c;与上个月相比&#xff0c;损失金额有所降落&#xff0c;但安全事件数量依旧不减。其中&#xff0c;Yearn Finance因参数配置错误&#xff0c;导致了1000多万美金的损失。同时&#xff0c;有一些已经出现过的…

【剧前爆米花--爪哇岛寻宝】TCP/IP协议以及在网络传输过程中的封装与分用

作者&#xff1a;困了电视剧 专栏&#xff1a;《JavaEE初阶》 文章分布&#xff1a;这是一篇关于网络初识的文章&#xff0c;在这篇文章中讲解了TCP/IP协议的主要内容和砸在网络传输过程中的封装和分用&#xff0c;希望对你有所帮助&#xff01; 目录 TCP/IP五层模型 应用层…

渲染和不渲染的区别是什么?

随着计算机技术日新月异不断发展&#xff0c;电脑合成技术图像技术也日益成熟。在三维制作中&#xff0c;经常会提到一个词“渲染”&#xff0c;很多没有接触三维制作的朋友可能不是太清楚它究竟是什么&#xff0c;图像制作后&#xff0c;渲染和不渲染的区别是什么&#xff0c;…

【Admin后台管理】Geodjango后台显示地图并加载空间字段

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、djangoadmin二、geodjangoadmin三、报错处理 前言 在前面的博客中&#xff0c;我们已经介绍了Geodjango的环境搭建和数据库操作&…