【LeetCode】剑指 Offer(29)

news2025/1/15 23:41:05

目录

题目:剑指 Offer 56 - II. 数组中数字出现的次数 II - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

题目:剑指 Offer 57. 和为s的两个数字 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

题目:剑指 Offer 57 - II. 和为s的连续正数序列 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

写在最后:


题目:剑指 Offer 56 - II. 数组中数字出现的次数 II - 力扣(Leetcode)

 

题目的接口:

class Solution {
public:
    int singleNumber(vector<int>& nums) {

    }
};

解题思路:

这道题我水平有限,

我就直接用哈希表计数,

然后再遍历整个哈希表,找出只出现一次的数即可,

下面是代码:

代码:

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        unordered_map<int, int> mp;
        for(auto& e : nums) mp[e]++; //用哈希表存
        for(auto k : mp) if(k.second == 1) return k.first; //返回只有一个的值
        return 1;
    }
};

过啦!!!

题目:剑指 Offer 57. 和为s的两个数字 - 力扣(Leetcode)

 

题目的接口:

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {

    }
};

解题思路:

这道题我一开始用的是双指针遍历整个数组,

然后计算结果,

然后我就超时了,

这道题由于他是一个有序数组,

所以我们还有一种双指针的做法,

就是两段逼近的双指针思想,

所以我就再用了一次双指针,

结论:

如果是有序数组的话,两端逼近的双指针效率

比从起点开始的双指针更高。

下面是代码:

代码:

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        vector<int> v;
        
        //两段逼近的双指针
        int l = 0, r = nums.size() - 1;
        while(l < r) {
            if(nums[l] + nums[r] > target) r--;
            else if(nums[l] + nums[r] < target) l++;
            else { //如果找到了
                v.push_back(nums[l]);
                v.push_back(nums[r]);
                return v;
            }
        }
        return v;
    }
};

过啦!!!

题目:剑指 Offer 57 - II. 和为s的连续正数序列 - 力扣(Leetcode)

 

题目的接口:

class Solution {
public:
    vector<vector<int>> findContinuousSequence(int target) {

    }
};

解题思路:

这道题的思路比较明显,

我们可以用滑动窗口去做,

运用滑动窗口的思想实现,然后将每一个符合条件的值

放进二维数组里面,最后返回即可。

下面是代码:

代码:

class Solution {
public:
    vector<vector<int>> findContinuousSequence(int target) {
        vector<vector<int>> vv;

        //滑动窗口的左右边界
        int l = 1, r = 1;
        int sum = 0;

        //因为 5 + 6 一定大于 9,所以我们的边界可以取到(target / 2 + 1)
        while(l <= target / 2 + 1) {
            if(sum < target) { //如果值小了,更新右边界
                sum += r++;
            }
            else if(sum > target) { //如果值大了,更新左边界
                sum -= l++;
            }
            else { //如果值等于target,存进二维数组,然后更新一下边界,不然会死循环
                vector<int> v;
                for(int i = l; i < r; i++) v.push_back(i);
                vv.push_back(v);

                //更新左边界
                sum -= l++;
            }
        }
        return vv;
    }
};

过啦!!!

 

写在最后:

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

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看

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

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

相关文章

JVM垃圾回收机制(GC)

目录 GC的作用&#xff1a; 申请内存的时机和释放内存的时机 内存泄露和内存溢出 内存泄露 内存溢出 GC&#xff08;垃圾回收的劣势&#xff09; GC&#xff08;垃圾回收&#xff09; 的工作过程 垃圾回收的过程&#xff1a; 第一阶段&#xff1a;找垃圾/判定垃…

Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCV实现图像的直方图算法增强(C++)

Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCV实现图像的直方图算法增强&#xff08;C&#xff09; Baumer工业相机Baumer工业相机使用图像算法增加图像的技术背景Baumer工业相机通过BGAPI SDK联合OpenCV使用图像增强算法1.引用合适的类文件2.BGAPI SDK在图像回调中引用…

基于NXP iMX8处理器扩展外部 SGTL5000 音频接口

By Toradex胡珊逢 Apalis iMX8 计算机模块的数字音频接口 SAI&#xff08;Synchronous Audio Interface&#xff09;可以配置为 AC97、I2S格式&#xff0c;用于连接外部音频编解码器。文章接下来将介绍在 Linux BSP v6 上如何扩展第二路 SGTL5000。 iMX8 处理器具有多路 SAI 通…

I2C基础入门

I2C参数 主从模式&#xff1a; 主机从机 常见速率&#xff1a; 普通模式&#xff08;100kHz&#xff09;快速模式&#xff08;400kHz&#xff09;快速模式&#xff08;1MHz&#xff09;高速模式&#xff08;3.4MHz&#xff09;超高速模式&#xff08;5MHz&#xff09; 地址…

__cplusplus和extern “C“

文章目录 __cplusplus是什么extern "C"使用场景的示例通过MinGW编译及查看下目标文件中的符号用gcc编译器添加 -c选项 使my_handle.c文件编译后生成my_handle.o文件&#xff0c;这里的 -o是 output的意思nm命令 是GCC编译集合下最常用的查看目标文件中的符号的命令 -…

0601概述-react路由-react

1 SPA与MPA 1.1 简述 单页面应用和多页面应用是两种不同的 Web 应用程序架构。 单页面应用&#xff08;SPA&#xff09;是指在一个 HTML 页面中动态加载和渲染所有的应用程序内容&#xff0c;通过前端 JavaScript 操作来实现页面的变化和交互。SPA 不需要每次请求新的 HTML …

牛客刷题错题解析

以下是Video/Audio中会触发的事件的有&#xff1f; load play seeked abort 网址&#xff1a;https://www.nowcoder.com/questionTerminal/fc3b560267fd44e98d02a40a 方法&#xff1a;load() play() pause() 事件&#xff1a;play() playing() pause() seeked() seeking() abor…

Linux移植5.4版本内核:正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤(5.4版本内核)

Linux移植5.4版本内核&#xff1a;正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤&#xff08;5.4版本内核&#xff09; 文章目录 Linux移植5.4版本内核&#xff1a;正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤&#xff08;5.4版本内核&#xff09;1.出厂源…

浅理解JavaScript数组去重的方法(划重点),当面试官问如何实现数组去重时,你可以这样做...

文章目录 &#x1f4cb;前言&#x1f3af;什么是数组去重&#xff0c;运用场景是什么&#xff1f;&#x1f3af;常用的数组去重方法&#x1f9e9;使用 Set 对象&#x1f9e9;使用 Object&#xff08;对象、基于Hash哈希表&#xff09; 或 Map&#x1f9e9;使用 filter 方法与 i…

概率图降低表示需要的参数指的是什么?(贝叶斯网络) 结构化概率模型

深度学习中经常要对概率密度建模。对于多维度随机变量来说&#xff0c;这有些困难。概率化结构&#xff08;既图模型&#xff09;是处理这个问题的手段之一。这引出了两个问题。为什么建模困难&#xff1f;图模型怎样解决了这个困难&#xff1f; 关于这个问题&#xff0c;花书…

图片怎么压缩到200K以内,这3个图片压缩方法,简单有效

你没有遇到过上传图片到网站的时候&#xff0c;图片太大不能上传的情况&#xff1f;还有&#xff0c;许多报名照片要求小于200K&#xff0c;可是照片超过这个大小&#xff0c;应该如何压缩呢&#xff1f;下面我给大家带来3个图片压缩的方法&#xff0c;既能快速压缩图片大小&am…

深度学习技巧应用7-K折交叉验证的实践操作

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下深度学习技巧应用7-K折交叉验证的实践操作。K折交叉验证是一种机器学习中常用的模型验证和选择方式&#xff0c;它可以将数据集分为K个互斥的子集&#xff0c;其中K-1个子集作为训练集&#xff0c;剩下1个子集作为验…

Hive设置元数据支持中文显示

在hive中建外部表时遇见到这样一个问题&#xff0c;就是表字段的中文注释在desc 表结构时看不了&#xff0c;发现原来是Hive的元数据库没有设置支持中文显示 第一步&#xff0c;在元数据库metastore完成初始化后&#xff0c;再次登录MySQL [roothurys24 hurys_table_data]# m…

成功解决:OSError: [E050] Can’t find model ‘en_core_web_sm’.

成功解决OSError: [E050] Can’t find model ‘en_core_web_sm’. 问题描述 在安装spacy包之后&#xff0c;再加载’en_core_web_sm’语言模型时&#xff0c;报出OSError: [E050] Can’t find model ‘en_core_web_sm’. It doesn’t seem to be a Python package or a valid…

【Java】插入排序和希尔排序---图解超详细

目录 插入排序 插入排序的核心图解 希尔排序 希尔排序详细图解 插入排序 插入排序的交换精髓在于 每次随着i的扩大,i走过的路径都是有序的,这和冒泡的思想有异曲同工之处,冒泡是i走一次,数组的最后变成有序的,而插入排序是 插入排序是 i 在前面 j在后面 插入排序的核心图解…

C- 符号

文章目录 符号#ifdef-#endif\接续符转义旋转光标数字倒计时 单引号-双引号逻辑运算符&& ||短路 位运算符异或位运算最好使用定义好的宏左移右移 后置前置复杂表达式 取整0向取整(C中默认取整方式)floor地板取整ceilround 四舍五入 取模取余和取模一样吗? 运算符优先级…

两小时让你全方位的认识文件(一)

想必友友们在生活中经常会使用到各种各样的文件&#xff0c;那么我们是否了解它其中的奥秘呢&#xff0c;今天阿博就带领友友们深入地走入文件&#x1f6e9;️&#x1f6e9;️&#x1f6e9;️ 文章目录 一.为什么使用文件二.什么是文件三.文件的打开和关闭四.文件的顺序读写 一…

网页自动化工具DrissionPage

逛Github时偶然看到的开源项目&#xff0c;DrissionPage是一款新的基于 python 的网页自动化工具。 笔者已测试过&#xff0c;给大家推荐下。 项目地址&#xff1a;https://gitee.com/g1879/DrissionPage 安装测试 安装命令 pip install DrissionPage测试 from Drissio…

unity | 处理string常用的知识(持续更新)

一、转义字符和的用法 1.常规用法 我们现在有一行字&#xff0c;但是我对它的格式之类的有要求 例&#xff1a;天无绝人之路&#xff0c;条条道路通罗马。 我想打成&#xff1a; 天无绝人之路&#xff0c; 条条道路通罗马。 换行前&#xff0c;写法是&#xff1a; string s …

科海思—美国杜笙Tulsimer中国区总代理,制糖脱色树脂A-722

一、产品介绍 具有控制孔径的大孔强碱性Ⅰ型阴特种脱色用离子交换树脂 Tulsimer A-722是一款具有便于颜色和有机物去除的控制孔径的&#xff0c;专门开发的大孔强碱性Ⅰ型阴离子交换树脂。 Tulsimer A-722 &#xff08;氯型&#xff09;专门应用于糖浆脱色。 Tulsimer A…