365天挑战LeetCode1000题——Day 109 贝壳周赛

314、旋转字符串 给定两个字符串, s和goal。如果在若干次旋转操作之后,s能变成goal,那么返回true。 s的 旋转操作 就是将s 最左边的字符移动到最右边。 例如, 若s = 'abcde',在旋转一次之后结果就是'bcdea'。 示例 1: 输入: s = "abcde", goal = "cdeab" 输出: true 示例 2: 输入: s = "abcde", goal = "abced" 输出: false 提示: 1 <= s.length, goal... 阅读详情

处理用时最长的那个任务的员工

在这里插入图片描述

代码实现(贪心)

class Solution {
public:
    int hardestWorker(int n, vector<vector<int>>& logs) {
        vector<int> workers(n);
        int curTime = 0;
        for (auto log : logs) {
            workers[log[0]] = max(workers[log[0]], log[1] - curTime);
            curTime = log[1];
        }
        int curId = 0, maxTime = 0;
        for (int i = 0; i < n; i++) {
            if (maxTime < workers[i]) {
                curId = i;
                maxTime = workers[i];
            }
        }
        return curId;
    }
};

找出前缀异或的原始数组

在这里插入图片描述

代码实现(位运算)

class Solution {
public:
    vector<int> findArray(vector<int>& pref) {
        int n = pref.size();
        vector<int> ans(n);
        ans[0] = pref[0];
        int pre = ans[0];
        for (int i = 1; i < n; i++) {
            ans[i] = pref[i] ^ pre;
            pre = pre ^ ans[i];
            // cout << "pre:"<< pre << " ans[" << i << "]:"<< ans[i] << endl;
        }
        return ans;
    }
};

使用机器人打印字典序最小的字符串

在这里插入图片描述

代码实现(栈)

class Solution {
public:
    string robotWithString(string s) {
        stack<char> st;
        vector<pair<char, int>> dict;
        for (int i = 0; i < s.size(); i++) {
            dict.push_back({s[i], i});
        }
        sort(dict.begin(), dict.end());
        int cur_pos = 0;
        string ans = "";
        for (auto [ch, pos] : dict) {
            if (!st.empty() && st.top() == ch) {
                // cout << ch << endl;
                while (!st.empty() && st.top() <= ch) {
                    ans += st.top();
                    st.pop();
                }
            }
            if (pos >= cur_pos) {
                ans += ch;
                while (cur_pos < pos) {
                    st.push(s[cur_pos]);
                    // cout << ch << " " << s[cur_pos] << endl;
                    cur_pos++;
                }
                cur_pos++;
            }
        }
        while (!st.empty()) {
            ans += st.top();
            st.pop();
        }
        return ans;
    }
};

矩阵中和能被 K 整除的路径

在这里插入图片描述

代码实现(dp)

class Solution {
private:
    const int NUM = 1000000007;
public:
    int numberOfPaths(vector<vector<int>>& grid, int k) {
        int m = grid.size();
        int n = grid[0].size();
        vector<vector<unordered_map<int, int>>> dp(m, vector<unordered_map<int, int>>(n));
        dp[0][0][grid[0][0] % k] = 1;
        int sum = grid[0][0];
        for (int i = 1; i < m; i++) {
            sum += grid[i][0];
            dp[i][0][sum % k] = 1;
        }
        sum = grid[0][0];
        for (int j = 1; j < n; j++) {
            sum += grid[0][j];
            dp[0][j][sum % k] = 1;
        }
        for (int i = 1; i < m; i++) {
            for (int j = 1; j < n; j++) {
                for (auto &left : dp[i][j - 1]) {
                    dp[i][j][(left.first + grid[i][j]) % k] += left.second % NUM;
                }
                for (auto &up : dp[i - 1][j]) {
                    dp[i][j][(up.first + grid[i][j]) % k] += up.second % NUM;
                }
            }
        }
        return dp[m - 1][n - 1][0] % NUM;
    }
};
5个4000比特大状态置换算法的设计与分析 下面是 5 个概念性、实验性的 4000 位可逆置换设计。它们都保证是双射,但未经过密码分析,不可直接用于生产系统。风格分别覆盖:三维 SPN、Feistel、可逆元胞自动机、ARX、宽轨迹/Keccak 式结构。 这 5 个设计分别代表了 SPN、Feistel、元胞自动机、ARX、宽轨迹 Keccak 五种不同风格,覆盖了主流大状态置换的构造思路。再次强调:它们只是实验性概念,若要用于实际协议,必须经过严格安全性分析。 阅读详情

相关推荐

Xiaojie雷达之路---毫米波雷达基础知识---中频信号的相位

本篇文章主要介绍毫米波雷达的基础知识中的中频信号的相位 文章目录傅里叶变换的快速回顾中频信号的相位中频信号对物体微小位移的灵敏度如何2个chirps来对一个物体的速度进行测量测量一个振动的物体 傅里叶变换的快速回顾 傅里叶变换是将一个信号从时域中转换到频域中,在时域中的一个正弦信号将在频域中产生一个峰值,在大多数情况下,在频域中的一个信号是一个复数(每个值是一个振幅和相位的向量),表示为AejθAe^{j\theta}Aejθ 在频域中峰值的相位等于正弦函数的初始相位 中频信号的相位 上一篇文章中提到,

XiaoJie的博客 1万+

LeetCode 314. 二叉树的垂直遍历(median)

LeetCode 314. 二叉树的垂直遍历(median)

airhaohan 的博客 1194

别再为H5扫码头疼了!用Vue3 + vue-qrcode-reader,5分钟搞定移动端摄像头调用(附完整代码)

本文详细介绍了如何使用Vue3和vue-qrcode-reader快速实现移动端扫码功能,解决H5开发中常见的摄像头调用和兼容性问题。通过完整的代码示例和优化技巧,帮助开发者高效集成二维码识别功能,提升用户体验和开发效率。

weixin_33737134的博客 513

leetcode周赛(一)

思路:差分 : arr[i] = pref[i] ^ pref[i - 1]

May the Force be with you 319

HSmartWindowControl vs HWindowControl:Halcon老鸟教你如何根据项目需求选对控件(附性能对比)

本文深度对比Halcon图像处理中的HSmartWindowControl与HWindowControl控件,从性能、内存占用和交互体验等维度提供选型建议。HSmartWindowControl在硬件加速渲染、智能内存管理方面表现优异,特别适合医疗影像和工业检测等高性能需求场景,而HWindowControl则更适合兼容旧系统和资源受限环境。

weixin_30765505的博客 468

Keil 丢失编译器版本5、内核文件core_cm3.c报错

若用的是旧版本的core_cm3.c ,就使用编译器v5编译工程;若想用编译器v6,就更新4个相关的内核文件:(CMSIS:Cortex Microcontroller Software Interface Standard,ARM Cortex™ 微控制器软件接口标准)

qq_52804040的博客 6239

记录每日LeetCode 2432.处理用时最长的那个任务的员工 Java实现

时间最长的任务是任务 0 和 1 ,处理这两个任务的员工的 id 分别是 0 和 1 ,所以返回最小的 0。返回处理用时最长的那个任务的员工的 id。注意,第 i 个任务在第 (i - 1) 个任务结束后立即开始,且第 0 个任务从时刻 0 开始。时间最长的任务是任务 3 ,而 id 为 1 的员工是处理此任务的员工,所以返回 1。时间最长的任务是任务 1 ,而 id 为 3 的员工是处理此任务的员工,所以返回 3。任务 0 于时刻 0 开始,且在时刻 1 结束,共计 1 个单位时间。

m0_65563175的博客 1528

西门子交换机环网冗余设置(实战篇2.2)

MRP的重组时间为 200ms 因此 PROFINET 通信必须选择大于 200ms 的看门狗时间,看门狗。ET200SP默认为 2ms*3=6ms) MRP 的重组时间为 200ms 故系统会报出看门狗超时。更新,默认是 3 个周期,超出设置的周期数就会报 IO 设备故障。时间不是直接配置的,而是作为没有 IO 数据可接受的更新周期,也就是允许几个周期没有数据。来达到大于 200ms 的看门狗时间的要求(看门狗时间 可接受更新周期数 更新时间)。是IO 控制器和 IO 设备)

weixin_42580591的博客 364

力扣 第 314 场周赛

【代码】力扣 第 314 场周赛。

ZZU_LGY 369

ANFIS实现数据非线性回归附Matlab代码

在本文中,我们将介绍如何使用Matlab实现基于MSE的ANFIS非线性回归,并提供相应的源代码。ANFIS是一种融合了模糊逻辑和神经网络的方法,它可以通过学习数据集中的模式来构建一个模糊推理系统。ANFIS的训练过程基于最小化MSE,以提高模型的拟合能力。通过上述代码示例,我们可以使用基于MSE的ANFIS模型对数据进行非线性回归,并获得相应的预测结果。在示例中,我们定义了一个包含两个样本的新输入数据集 X_new,然后使用训练好的ANFIS模型进行预测,并将结果存储在变量 Y_pred 中。

2301_79326588的博客 473

2026年佰维存储数字IC笔试试卷带答案

建立时间是有效时钟沿到来前,输入数据必须稳定保持的最短时间。保持时间是有效时钟沿到来后,输入数据必须继续稳定保持的最短时间。

Open 103

力扣2434(贪心+栈)

贪心算法

qq_51405560的博客 216

分布式锁特点、以及用python3实现redis分布式锁

以下是 Python3 实现 Redis 分布式锁的详细教程,包含代码示例、原理说明及最佳实践。

数据知道的博客 2万+

leetcode314

所谓的垂直遍历。就是从左到右,从上到下。 采用BFS实现从上到下。 那么从左到右如何实现呢? 自定义MyNode记录偏移量,用TreeMap存储每个偏移量的列表,最终可以按顺序输出。 public class test { List<List<Integer>> res = new ArrayList<>(); public List<List<Integer>> verticalOrder(TreeNode root){

xiaobailaji的博客 311

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

第314场Leetcode周赛|使用机器人打印字典序最小的字符串

打印字典序最小的字符串,贪心算法

Most_exc的博客 424

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

LeetCode 2434(贪心+栈+动态规划)

LeetCode贪心的想一下,如果栈顶元素出站的前提是什么?如果字符串s中从遍历到的当前字符开始后面的字符没有比当前栈顶元素小的时候,是不是当前的栈顶元素就可以出栈了, 如果后面还有比栈顶元素小的字符,那么把它放到前面一定会更小,所以要一直遍历到比栈顶元素小的字符。给你一个字符串 s 和一个机器人,机器人当前有一个空字符串 t。为了快速的知道某一个位置后面的最小字符,可以利用动态规划来实现,按字符串s逆序跑一遍O(n),可以把机器人的空字符串t看成一个空栈,相当于求一个最小的出栈顺序。执行第一个操作

c__chong的博客 759

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

找出前缀异或的原始数组(leetcode314周赛第二题)

找出前缀异或的原始数组(leetcode314周赛第二题) 给你一个长度为n的数组pref。找出并返回满足下述条件且长度为n的数组arr注意^表示(bitwise-xor)运算。可以证明答案是的。从数组 [5,7,2,3,2] 可以得到如下结果:[13]

qq_59183443的博客 420

【LeetCode2434. medium】使用机器人打印字典序最小的字符串

1、①那里,没必要,因为他可以和第二种方法合并,没必要先处理当前字符,然后再进流程。本来想着是,先往前看相邻的(输出,必须是连续的c字符),然后往后看(只输出c字符,一直到后面没有c字符),然后再往前看(栈内的全都输出,一直到输出完c字符)因为你看题目说有两种操作,但是却不问最少的操作数,说明说不定这两种操作可以合并或者转换,与两种操作无关。本来想的是,从字符a-z进行遍历,先处理a在处理b这样,但是好像处理不了bdacb这种情况。然后发现没这么复杂,从栈的角度考虑贪心,啥时候入栈,啥时候输出,就行了。

xuanweiace的博客 566

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 187

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 274

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 557

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 19

C语言程序设计题|有序数组插入数字冒泡排序

题目要求将一个数插入有序数组末尾,并用冒泡排序实现整体升序。代码先将输入数存入数组最后位置,再通过双重循环进行冒泡排序,每轮将较大元素向后移动,最终输出11个升序元素。该方法虽时间复杂度为O(n²),但符合题目要求,逻辑清晰,适合初学者理解排序原理。

2301_81429079的博客 643

【算法拾光】模拟|外观数列 + 数青蛙

本文总结两道模拟题解法:外观数列通过迭代统计连续数字个数生成下一项,关键在于处理末尾字符;数青蛙则模拟青蛙叫声“croak”状态转移,维护各阶段青蛙数量,记录最大并发数并确保全部完成。共性在于严格遵循流程、细致处理边界与非法情况,锻炼字符串遍历与状态管理能力。

wuqingyigexiaoba的博客 367

牛客周赛165C题(前后缀性质,递推,排序,枚举)

题目大意:给定长度为 `n` 的数组,选择 `k ∈ [1,n]`,将前 `k` 个元素整体翻转,后面的元素不变。要求操作后的整个数组非递减,统计满足条件的 `k` 的数量。题目链接:https://ac.nowcoder.com/acm/contest/141721/C。时间复杂度:O(nlogn)

2501_94316951的博客 164

【数据结构-3】算法美学之降复杂度

在while循环的循环体内,首先用临时变量保存最后一个位置的数据,再通过for循环把所有元素往后移动一位,最后把tmp中保存的值放到下标为0的位置上去。方法二的思路是:创建新数组,让原数组中后k个数据移动到新数组中前面的位置,让原数组中前numsSize-k个数据移动到新数组中后面的位置,这。这段代码的思路是:三次逆置,第一次逆置前numsSize-k个数据,第二次逆置后k个数据,最后整体逆置。这篇博文分享一道解法不一的算法题,求解过程的目的在于降低算法的时间复杂度,题源力扣。,属于空间换时间的操作。

weixin_44218929的博客 81
上一篇: 365天挑战LeetCode1000题——Day 108 优势洗牌
下一篇: 365天挑战LeetCode1000题——Day 110 状态机
ShowM3TheCode
博客等级 码龄5年 29粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值