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

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

1000题挑战

没有废话,直接开刷!

目录

1000题挑战

没有废话,直接开刷!

第一题:119. 杨辉三角 II - 力扣(Leetcode)

题目接口

解题思路

代码:

过过过过啦!!!!

第二题:

​编辑

题目接口

解题思路

代码:

过过过过啦!!!!

​编辑 第三题:168. Excel表列名称 - 力扣(Leetcode)

题目接口

解题思路

代码:

过过过过啦!!!!

第四题:171. Excel 表列序号 - 力扣(Leetcode)

题目接口

解题思路

代码:

过过过过啦!!!!

题量截图:

写在最后:


第一题:119. 杨辉三角 II - 力扣(Leetcode)

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

题目接口

class Solution {
public:
    vector<int> getRow(int rowIndex) {
​
    }
};

解题思路

这道题我的思路是:

  1. 可以用数学方法推导出规律

  2. 可以用递推去做

  3. 暴力构造杨辉三角,然后返回题目要求的那一行

这里我说一下递推的思路:(如果在面试的时候能想到递推,那当然是用递推啦)

我们通过 i 下标不断往数组里面添加1,

下标 j 是 i - 1 ,他等于自己这个位置加上前一个位置的和,

我们从后往前递推,就不会因为改变了数组的值而影响递推的结果。

代码:

class Solution {
public:
    vector<int> getRow(int k) {
        vector<int> ret(k + 1);
        for(int i = 0; i <= k; ++i) { //不断往数组里面添加1
            ret[i] = 1;
            for(int j = i - 1; j >= 1; --j) { //j下标位置加上前一个位置的和
                ret[j] += ret[j - 1];
            }
        }
        return ret;
    }
};

我用的是暴力。

代码如下:

代码:

class Solution {
public:
    vector<int> getRow(int rowIndex) {
        int r = rowIndex + 1;
        vector<vector<int>> vv(r, vector<int>(r, 0)); //构造出足够的空间
        for(int i = 0; i < r; i++) vv[i][0] = 1; //给第一排填上1
        for(int i = 1; i < r; i++) { //构造杨辉三角
            for(int j = 1; j < r; j++) {
                vv[i][j] = vv[i - 1][j] + vv[i - 1][j - 1];
            }
        }
        vector<int> res; //把题目要求的那行输出
        for(int i = 0; i < r; i++) res.push_back(vv[rowIndex][i]);
        return res;
    }
};

过过过过啦!!!!

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

第二题:

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

题目接口

class Solution {
public:
    int maxProfit(vector<int>& prices) {
​
    }
};

解题思路

这道题的解题思路:

  1. 可以用单调栈

  2. 可以用动态规划

  3. 我用的是模拟

是这样的,我是之前做剑指Offer的时候看到了一个大佬的思路,

遍历数组,如果今天的股价大于昨天的股价,就将他们的差价记录(维护这个差价的最大值)

然后让昨天的股价覆盖今天的股价,就能保证如果明天的股价上涨,我们能用最低的价格买入。

最后再返回我们的最大差价即可。

代码:

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int n = prices.size(), m = 0;
        for(int i = 1; i < n; i++) {
            if(prices[i - 1] < prices[i]) { //如果今天的股价大于昨天的股价
                m = max(m, prices[i] - prices[i - 1]); //维护这个差价的最大值
                prices[i] = prices[i - 1]; //让昨天的股价覆盖今天的股价
            }
        }
        return m;
    }
};

过过过过啦!!!!

 第三题:168. Excel表列名称 - 力扣(Leetcode)

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

题目接口

class Solution {
public:
    string convertToTitle(int columnNumber) {
​
    }
};

解题思路

这道题的解题思路非常关键,

我们可以把这道题的思路转化为:

10进制转化成26进制,

这样子,我们只需要注意一下,每次 %26 前,需要让数整体往左偏移1即可。

代码:

class Solution {
public:
    string convertToTitle(int columnNumber) {
        string res;
        while(columnNumber) {
            columnNumber--; //向左偏移
            res += (columnNumber % 26 + 'A'); //进制转换
            columnNumber /= 26; 
        }
        reverse(res.begin(), res.end()); //因为我们是从低位尾插进res的,所以最后需要反转一下
        return res;
    }
};

过过过过啦!!!!

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

第四题:171. Excel 表列序号 - 力扣(Leetcode)

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

题目接口

class Solution {
public:
    int titleToNumber(string columnTitle) {
        
    }
};

解题思路

这道题的思路遇上一题类似,

这道题是26进制转10进制。

下面是代码:

代码:

class Solution {
public:
    int titleToNumber(string columnTitle) {
        int sum = 0;
        for(int i = 0; i < columnTitle.size(); i++) {
            sum = sum * 26 + (columnTitle[i] - 'A' + 1); 
        }
        return sum;
    }
};

过过过过啦!!!!

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

题量截图:

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

写在最后:

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

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

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

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

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

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

相关文章

  • 2022/10/16今日问题:(点击下方目录可直接跳转)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2024年03月16日
    浏览(42)
  • -bash:./app:没有那个文件或目录(已解决)

    目录下有文件,并且权限也是够的,都是就是是没有。 解决方法: 进入/bin,执行命令 如上图,可以发现,bash是32-bit, 进入app所在目录,执行 如上图,可以发现,app是64-bit, 这就是问题所在!!! 这说明我们使用的编译工具需要更换,我编译app使用的是64位的交叉编译器

    2024年04月15日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包