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

这篇具有很好参考价值的文章主要介绍了【LeetCode】1000题挑战(230/1000)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1000题挑战

没有废话,直接开刷!

目录

1000题挑战

没有废话,直接开刷!

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

题目接口:

解题思路:

代码:

过过过过啦!!!!

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

题目接口:

解题思路:

代码:

过过过过啦!!!!

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

题目接口:

解题思路:

代码:

过过过过啦!!!!

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

题目接口:

解题思路:

代码:

过过过过啦!!!!

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

题目接口:

解题思路:

代码:

过过过过啦!!!!

题量截图:

写在最后:


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

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

题目接口:

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;
    }
};

过过过过啦!!!!

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

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

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

题目接口:

/**
 * 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); //搜索右子树
            }
        }
    }
}; 

过过过过啦!!!!

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

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

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

题目接口:

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;
    }
}; 

过过过过啦!!!!

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

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

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

题目接口:

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;
    }
};

过过过过啦!!!!

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

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

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

题目接口:

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; //两个字符串的个数匹配
    }
};

过过过过啦!!!!

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

题量截图:

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

写在最后:

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

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

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出文章来源地址https://www.toymoban.com/news/detail-440134.html

到了这里,关于【LeetCode】1000题挑战(230/1000)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LeetCode 1000. Minimum Cost to Merge Stones【记忆化搜索,动态规划,数组】困难

    本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,

    2023年04月26日
    浏览(103)
  • 2022/10/16今日问题:(点击下方目录可直接跳转)

    这些问题都是在写作业过程中碰到的,记录下来,以后可以翻阅,也希望可以给有同样问题的人答疑解惑。本人新手,多有不熟、不严谨、不规范的地方,希望大家多多指正。如果对于问题有更好的解决方法也欢迎分享。 目录 问题一、一个Textview组件中的文本被前面的组件挡

    2024年02月16日
    浏览(45)
  • git合作开发时,没有pull就直接push会怎样

    git的时候总会遇到一些奇怪的问题 目前遇到最麻烦的还是在push之前没有pull 每天上班第一件事pull一下,上传代码之前一定要pull 没有pull就push,会出现merge 即使使用git reset --soft HEAD^,会回到仓库,但是会出现其他同事提交的代码,这个时候想pull也不行,会提示有待merge的,因

    2023年04月09日
    浏览(42)
  • 没有“中间商赚差价”, OpenVINO™ 直接支持 PyTorch 模型对象

    点击蓝字 关注我们,让开发变得更有趣 作者 | 杨亦诚 排版 | 李擎 没有“中间商赚差价”,  OpenVINO™  直接支持 PyTorch 模型对象 背景 作为最热门的开源深度学习框架之一,PyTorch 的易用性和灵活性使其深受学术和研究界的喜爱。之前 OpenVINO™ 对于 PyTorch 模型的支持也仅仅停

    2024年02月10日
    浏览(33)
  • hadoop报错:没有那个文件或目录

    删掉haoop安装目录下 /opt/module/hadoop-3.3.0/etc/hadoop/workers 文件里面的localhost 保存后可成功运行脚本 附上:myhadoop.sh(实现hadoop集群快速启停)

    2024年02月11日
    浏览(64)
  • Ubuntu设置共享文件夹(解决/mnt 目录下没有 hgfs 目录)

             目录 1、Windows创建一个共享文件夹 2、在虚拟机的设置中选择Windows下的共享文件夹 3、在Ubuntu中查看共享文件夹 4、解决/mnt 目录下没有 hgfs 目录 5、设置共享文件夹以后,/mnt/hgfs下没有出现共享文件夹  这种方式使用的前提是 Ubuntu虚拟机和Windows系统在同一主机上

    2024年02月06日
    浏览(54)
  • 【LeetCode】30 天 Pandas 挑战

    真题: (一)条件筛选——1.大的国家 (一)条件筛选——2.可回收且低脂的产品 (一)条件筛选——4.文章浏览1 (四)数据统计——16.富有客户的数量 (四)数据统计——18.按分类统计薪水 (六)数据合并——26.合作过至少三次的演员和导演 真题: (一)条件筛选——

    2024年02月11日
    浏览(38)
  • 启动hbase(报错:没有那个文件或目录)

    完成hbase伪分布配置后,启动hbase 然后报错 发现都是Java没有文件或目录,判断是jdk的路径错误 然后修改配置文件:hbase-env.sh(文件在hbase-conf目录) 将本机的jdk路径写正确  更改完成后再次启动hbase即可  

    2024年02月11日
    浏览(54)
  • 没有为请求的 URL 配置默认文档,并且没有在服务器上启用目录浏览

    使用asp.net mvc写了个网站,部署后出现: 没有为请求的 URL 配置默认文档,并且没有在服务器上启用目录浏览 这个问题 网上搜了下,无非是两种方法: 1、在web.config中添加 2、开启目录浏览功能。 在折腾了以上步骤之后,再次刷新网页,反而是直接可以看到网站目录了 最终

    2024年02月07日
    浏览(44)
  • 数据库相关理论知识(有目录便于直接锁定相关知识点+期末复习)

    一,数据模型,关系型数据模型,网状模型,层次模型 1. 数据库模型 是用来描述和表示现实世界中的事物、概念以及它们之间的关系的工具, 但是并不是越专业越好,还要平衡它的模型的复杂性、通用性和成本效益等因素 。数据模型按不同的应用层次可以分为 三个层次 ,

    2024年03月16日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包