leetcode(26-30)

[原创]Linux 802.11n CSI tool Monitor模式 Linux 802.11n CSI tool Monitor模式 使用AP模式的缺陷在于ping 命令速度比较慢,且不能精确控制发送的参数,比如接收的包数量是不可控的。Monitor模式可以调制发送速率、发包数量、发送天线个数、HT模式、short/long guard interval等等,因此调通Monitor模式是必须的。期间参考了博主沃一德的CSI Tool安装使用讲解,对他的工作表示感... 阅读详情

z26. 删除排序数组中的重复项

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

示例 1:

给定数组 nums = [1,1,2], 

函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1,2
你不需要考虑数组中超出新长度后面的元素。

示例 2:

给定 nums = [0,0,1,1,1,2,2,3,3,4],

函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0,1,2,3,4

你不需要考虑数组中超出新长度后面的元素。

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝
int len = removeDuplicates(nums);

// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。
for (int i = 0; i < len; i++) {
    print(nums[i]);
}
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        if (nums.size() == 0) return 0;
        int num = 0;
        for (int i=0; i<nums.size(); i++){
            if(nums[i] != nums[num]){
                num++;
                nums[num]=nums[i];
            }
        }
        return ++num;
    }
};

27. 移除元素

给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

示例 1:

给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。 你不需要考虑数组中超出新长度后面的元素。

示例 2:

给定 nums = [0,1,2,2,3,0,4,2], val = 2, 函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0,1,3,0,4 注意这五个元素可为任意顺序。 你不需要考虑数组中超出新长度后面的元素。

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝
int len = removeElement(nums, val);

// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。
for (int i = 0; i < len; i++) {
    print(nums[i]);
}
class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int head = 0;
        for (int i=0; i<nums.size(); i++){
            if (nums[i] != val){
                nums[head++] = nums[i];
            }
        }
        return head;
    }
};

28. 实现strStr()

实现 strStr() 函数。

给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回  -1。

示例 1:

输入: haystack = "hello", needle = "ll"
输出: 2

示例 2:

输入: haystack = "aaaaa", needle = "bba"
输出: -1

说明:

当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。

对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符。

class Solution {
public:
    int strStr(string haystack, string needle) {
        int n = haystack.length();
        int m = needle.length();
        if(m == 0)
            return 0;
        if(m > n)
            return -1;
        for(int i = 0; i <= n - m; i++){
            string subStr = haystack.substr(i, m);
            if(subStr == needle)
                return i;
        }
        return -1;
    }
};

29. 两数相除

给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。

返回被除数 dividend 除以除数 divisor 得到的商。

示例 1:

输入: dividend = 10, divisor = 3
输出: 3

示例 2:

输入: dividend = 7, divisor = -3
输出: -2

说明:

  • 被除数和除数均为 32 位有符号整数。
  • 除数不为 0。
  • 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231,  231 − 1]。本题中,如果除法结果溢出,则返回 231 − 1。
class Solution {
public:
    int divide(int dividend, int divisor) {
        if (dividend == INT_MIN&&divisor == -1) {
            return INT_MAX;
        }
        return recursion(dividend, divisor);
    }

    int recursion(int dividend, int divisor) {
        int temp;
        int i;
        int quotient;
        int sign;
        const int overflow = 1 << 30;
        bool flag;
        if (-abs(dividend)>-abs(divisor)) {
            return 0;
        }
        sign = (dividend >= 0) ^ (divisor >= 0) ? -1 : 1;
        i = 0;
        temp = divisor;
        flag = (divisor < 0) ^ (bool)(overflow&temp);
        while ((!flag)&&(-abs(dividend) < -abs(temp << 1))) {

            temp = temp << 1;
            i++;
            flag = (divisor < 0) ^ (bool)(overflow&temp);

        };
        if (sign == -1)temp = -temp;
        quotient = (sign>0 ? 1 : -1) << i;
        return quotient + recursion(dividend - temp, divisor);

    }
};

30. 与所有单词相关联的字串

给定一个字符串 s 和一些长度相同的单词 words。在 s 中找出可以恰好串联 words 中所有单词的子串的起始位置。

注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。

示例 1:

输入:
  s = "barfoothefoobarman",
  words = ["foo","bar"]
输出: [0,9]
解释: 从索引 0 和 9 开始的子串分别是 "barfoor" 和 "foobar" 。
输出的顺序不重要, [9,0] 也是有效答案。

示例 2:

输入:
  s = "wordgoodstudentgoodword",
  words = ["word","student"]
输出: []
class Solution {
public:
    vector<int> findSubstring(string s, vector<string>& words) {
        vector<int> res;
        if(s.empty() || words.empty()) return res;
        int n=words.size(), m=words[0].size();
        unordered_map<string,int> m1;
        for(auto &a:words) ++m1[a];
        for(int i=0; i<=(int)s.size()-n*m; i++){
            unordered_map<string,int> m2;
            int j=0;
            for(; j<n; j++){
                string t=s.substr(i+j*m,m);
                if(m1.find(t) == m1.end()) break;
                ++m2[t];
                if(m2[t] > m1[t]) break;
            }
            if(j==n) res.push_back(i);
        }
        return res;
    }
};

(以上题目均摘自leetcode)

告别示教器!用C#和ABB PC SDK 6.08打造你的第一个Windows机器人控制台(附完整连接代码) 本文详细介绍了如何使用C#和ABB PC SDK 6.08开发Windows机器人控制台应用,实现无示教器的机器人控制。从环境配置、SDK引用到机器人发现、连接及状态监控,提供了完整的代码示例和架构设计建议,帮助开发者快速掌握上位机控制技术。 阅读详情

相关推荐

用Arduino和FS-i6X遥控器,从零开始打造你的第一只仿生扑翼蝴蝶(附完整代码解析)

本文详细介绍了如何利用Arduino和FS-i6X遥控器从零开始制作仿生扑翼蝴蝶,包括硬件准备、电路连接、代码解析和调试技巧。通过完整的代码示例和参数说明,帮助读者快速掌握仿生机器人的制作要点,实现蝴蝶的自然飞行效果。

weixin_28727975的博客 309

【PythonCode】力扣Leetcode26~30题Python版

力扣26-30

weixin_43790276的博客 2017

别再只飞不记了!用CsvView分析你的大疆飞行日志,优化航拍与排查炸机原因

本文详细介绍了如何利用CsvView工具分析大疆无人机的飞行日志,帮助用户优化航拍效率和飞行安全。通过解读飞行日志中的关键数据,如电池性能、飞行轨迹等,用户可以及时发现潜在问题并改进飞行习惯。文章还提供了事故排查方法和进阶分析技巧,适合无人机爱好者和专业飞手。

weixin_42535461的博客 549

【LeetCode Solutions】LeetCode 热题 100 题解(26 ~ 30)

【LeetCode Solutions】LeetCode 热题 100 题解(26 ~ 30)

一只快乐的小蒟蒻~ 1032

ESP32语音交互实战:离线唤醒与DeepSeek大模型集成

本文详细介绍了如何将ESP32-S3开发板与天问ASRPRO语音模块结合,实现离线语音唤醒并集成DeepSeek大模型的智能交互系统。通过串口通信与API调用,系统可处理本地指令及复杂语义请求,适用于低成本、高隐私保护的AIoT语音交互场景。

rust6ferris的博客 869

基于粒子群算法的PID控制器优化设计

粒子群算法、PID、寻优

qq_46107700的博客 2万+

LeetCode 26~30

前言 本文隶属于专栏《LeetCode 刷题汇总》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构请见LeetCode 刷题汇总 正文 幕布 幕布链接 26. 删除有序数组中的重复项 题解 5 lines C++/Java, nicer loops​ i遍历,j占位 class Solution { public int removeDuplicates(int[] nums) { int i = 0; for (in

Shockang的博客 6091

AWS SQS跨账户访问失败排查指南

在使用AWS SQS(Simple Queue Service)时,跨账户访问是常见的业务场景。例如,账户A的应用程序向队列发送消息,账户B的消费者从队列拉取消息。尽管AWS官方文档明确支持此类配置,但在实际应用中,由于权限模型的复杂性,开发者和运维人员常会遇到“策略已配置但无法接收消息”的问题。通过本文的逐步排查指南,您不仅可以解决当前问题,还能深入理解AWS跨账户访问的权限模型。接收方账户的用户或角色必须同时附加IAM策略,显式授权操作目标队列。尽管策略看似允许接收方操作,实际测试中却返回空消息或。

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 458

力扣题解26-30

题解

qq_30225253的博客 490

【100%通过率】华为od机试C卷【特殊的加密算法】Python 实现

有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。规则如下1.明文为一段数字串由0-9组成2.密码本为数字0-9组成的二维数组3.需要按明文串的数字顺序在密码本里找到同样的数字串,密码本里的数字串是由相邻的单元格数字组成,上下和左右是相邻的,注意:对角线不相邻,同一个单元格的数字不能重复使用。

MISAYAONE的博客 5924

Thor芯片部署

英伟达Jetson Thor芯片性能分析与应用现状 摘要:英伟达最新发布的Jetson Thor芯片基于Blackwell架构,官方宣称AI算力达2070TFLOPS(FP4),较前代Orin提升7.5倍,配备14核Arm CPU和128GB内存。然而实际量产版算力缩水至700TOPS,且因4nm制程良率问题多次延期至2025-2026年交付。该芯片支持FP4/FP8量化、Transformer引擎等先进特性,适用于自动驾驶、机器人等边缘AI场景,但受供应链限制,国内厂商倾向自研方案。开发者可通过JetPa

xiaomu_347的博客 431

【JavaScript】LeetCode:26-30

【代码】【JavaScript】LeetCode:26-30。

weixin_45980065的博客 1600

华为OD最新机试真题-池化资源共享

摘要:该问题要求管理n台设备的资源池,处理资源申请和释放操作。申请操作需返回满足条件且剩余资源最少的设备ID,释放操作需将指定申请的资源归还。采用线段树数据结构维护各设备当前最大可用资源值,支持快速查询和更新。线段树实现了单点修改、区间最大值查询以及查找最左满足条件的节点功能。算法时间复杂度为O((n+m)logn),空间复杂度O(n),适用于大规模操作。提供了C++、Java和Python三种实现方案。

面试高手的博客 325

Leetcode 26-30题

对于刚刚的例子,当 text[5] 与 pattern[4 + 1] 失配时,令 j = next[4] = 2,然后我们会发现 text[i] == pattern[j + 1] 能够成立,因此就让它继续匹配,直到 j == 6 也匹配成功,这就意味着 pattern 是 text 的子串。如下图所示,当已经得到 next[3] = 1 时,最长相等前后缀为 “ab”,之后计算 next[4] 时,由于 s[4] == s[next[3] + 1] (这里的为什么要用 next[3]?

m0_60541499的博客 1042

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LeetCode 30天挑战 Day-26

LeetCode 30 days Challenge - Day 26 本系列将对LeetCode新推出的30天算法挑战进行总结记录,旨在记录学习成果、方便未来查阅,同时望为广大网友提供帮助。 Longest Common Subsequence Given two strings text1 and text2, return the length of their longest commo...

KarlSzp 263

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【LeetCode Solutions】LeetCode 26 ~ 30 题解

【LeetCode Solutions】LeetCode 26 ~ 30 题解

一只快乐的小蒟蒻~ 599

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

leetCode 26-30

leetCode53-连续子序列最大值55-跳跃游戏 53-连续子序列最大值 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例 1: 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。 class Solution { public int maxSubArray(int[] nums) { int len = nums.leng

fan__lee的博客 315

leetcode从零开始之26-30

思路:题目的涵义就是用加减法代替除法。只要理清楚第一步和第二步中的+1与第二步中的-1都是指的窗口内的单词个数,而第一步中的-1则是题目所需要的个数,而窗口内所有单词的次数总和为k,而题目所给字符串数组中单词的个数也是k,只有当窗口内所有单词都是为了满足字符串数组中的单词而存在,才会使hashmap中的key值对应的value都为0(由于value为0时移除,所以都为0也对应map为空)。这里-1与+1的区别是,+1的含义是当前窗口内含有一个,-1的含义是题目中的条件还需要一个,类型:字符串,滑动窗口。

qq_44192351的博客 802

力扣爆刷第108天之CodeTop100五连刷26-30

思路:求最长递增子序列的长度,是非连续的,一层for是解决不了的,定义dp[i]表示区间[0, i]以nums[i]为结尾的最长递增子序列的长度,求dp[i]就要遍历[0,i],每一个位置利用定义进行推导,nums[j]<nums[i],dp[j]是以nums[j]为结尾的区间的最大长度,那么dp[i]=dp[j]+1。思路:利用单调栈,构造凹槽即可,栈内递减,当前元素大于栈顶,栈顶出栈,出来的这个为凹槽底部,然后利用当前元素为右边界,当前栈顶为左边界,结合出栈的凹槽底部进行雨水容量计算。

qq_43511039的博客 620

【Leetcode Summary】26-30题总结

26.Remove Duplicates from Sorted Array Given a sorted arraynums, remove the duplicatesin-placesuch that each element appear onlyonceand return the new length. Do not allocate extra space for an...

qq_40947718的博客 256

LeetCode 实践练习26-30

LeetCode—26(删除排序数组中的重复项) 方法一:这道题与移除有序链表中的重复项题(82与83)很类似,但是更要简单一些,因为毕竟数组的值可以通过下标直接访问,而链表不行。我们使用快慢指针来记录遍历的坐标,最开始时两个指针都指向第一个数字,如果两个指针指的数字相同,则快指针向前走一步,如果不同,则两个指针都向前走一步,然后将cur值赋值给不同值的坐标那。这样当快指针走完整个数组后,慢指针当...

qq_40104034的博客 148

LeetCode 算法系列:第 26 ~ 30题

目录 26. 删除排序数组中的重复项 27. 移除元素 28. 实现 strStr() 29. 两数相除 30. 串联所有单词的子串 26. 删除排序数组中的重复项 题目描述 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为

逍遥云的博客 345

力扣爆刷第88天之hot100五连刷26-30

思路:本题让求环形链表的入口,根据一个数学推论,使用快慢指针,慢指针每次走一步,快指针每次走二步,相遇便说明有环,此时从头结点到达环入口节点的距离是等于从相遇节点到入口节点的距离的,然后让其中一个指针指向头结点,另一个指针从相遇节点出发,再次相遇便是入口。题目链接:https://leetcode.cn/problems/remove-nth-node-from-end-of-list/description/?

qq_43511039的博客 378

每日5题Day6 - LeetCode 26 - 30

【代码】每日5题Day6 - LeetCode 26 - 30。

alimamaalala的博客 342

【26-30】LeetCode:Python解题

26. Remove Duplicates from Sorted Array【Easy】 Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length. Do not allocate extra space for

Joe的博客 2082

LeetCode力扣(剑指offer 26-30)26. 树的子结构 27. 二叉树的镜像 28. 对称的二叉树 29. 顺时针打印矩阵 30. 包含min函数的栈

LeetCode个人题解(剑指offer 26-30)26. 树的子结构 27. 二叉树的镜像 28. 对称的二叉树 29. 顺时针打印矩阵 30. 包含min函数的栈

u011895157的博客 351
上一篇: 知识图谱---本体匹配(基于结构)
下一篇: leetcode(31-35)
小小螺丝刀
博客等级 码龄10年 41粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值