Loading [MathJax]/jax/input/TeX/jax.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >蓝湖的题,不错!

蓝湖的题,不错!

作者头像
ACM算法日常
发布于 2021-12-20 10:25:56
发布于 2021-12-20 10:25:56
80800
代码可运行
举报
文章被收录于专栏:ACM算法日常ACM算法日常
运行总次数:0
代码可运行

蓝湖联名力扣周赛出的题目还不错,前三题比较温暖,最后一题带一点套路,总的来说都不难

涉及知识点:模拟,字符串,动态规划,最长上升子序列,二分优化

5956. 找出数组中的第一个回文字符串

给定一个字典 w ,找到第一个回文字符串,如果没有输出空字符串

题解

模拟

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// cpp
class Solution {
public:
    bool check(const string& s) {
        int i = 0, j = s.length() - 1;
        while (i <= j) {
            if (s[i++] != s[j--]) return 0;
        }
        return 1;
    }
    string firstPalindrome(vector<string>& w) {
        for (auto& i: w) if (check(i)) return i;
        return "";
    }
};

5957. 向字符串添加空格

给定一个字符串 s 和一个正整数数组 a ,按照 a 中的值给 s 中的对应位置添加空格

题解

两个指针扫描

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// cpp
class Solution {
public:
    string addSpaces(string s, vector<int>& spaces) {
        int j = 0;
        string ans;
        for (int i = 0; i < s.length(); ++i) {
            if (j < spaces.size() && i == spaces[j]) ans += ' ', ++j;
            ans += s[i];
        }
        return ans;
    }
};

5958. 股票平滑下跌阶段的数目

给定一个正整数数组 a 表示每天的股价,如果有一段区间依次递减1 ,我们称之为平滑下跌,计算a 中平滑下跌的区间个数

题解

简单 dp,定义 dp[i] 表示以第i 天结尾,平滑下跌的天数,那么

  • a[i]+1=a[i1] ,则dp[i]=dp[i1]+1
  • 否则,dp[i]=1

根据状态转移方程计算,最后累加dp 数组即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// cpp
class Solution {
public:
    long long getDescentPeriods(vector<int>& p) {
        int n = p.size();
        typedef long long LL;
        vector<LL> dp(n);
        dp[0] = 1;
        for (int i = 1; i < n; ++i) {
            if (p[i - 1] - 1 == p[i]) dp[i] = dp[i - 1] + 1;
            else dp[i] = 1;
        }
        LL ans = 0;
        for (int i = 0; i < n; ++i) ans += dp[i];
        return ans;
    }
};

5959. 使数组 K 递增的最少操作次数

给定一个正整数数组 a 和一个正整数 k ,如果对于每一个位置 i 都有 a[ik]a[i] ,那么我们称之为 k 递增现在你可以花费一个操作数,将i 位置的元素 a]i] 变为任意正整数,请计算让 a 变得 k 递增的最小操作数数据规定,数组a 的长度 n 满足1n105

题解

一个简单的发现,变换后的数组满足a[i]a[i+k]a[i+2k]... 因此我们把原数组可以拆成k 个长为 nk 的子数组

考虑子问题,给定一个长度为 m 的正整数数组 b ,可以任意变换元素的值,最少花费多少操作数使得 b 单调不减?

只需要计算最长不降子序列的长度l ,那么答案即为ml ,具体可以参考 dilworth 定理我们对每个子数组都做这样的计算,最后求和即可,时间复杂度为O(nlognk)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// cpp
class Solution {
public:
    int kIncreasing(vector<int>& arr, int k) {
        int n = arr.size(), ans = 0;
        for (int i = 0; i < k; ++i) {
            vector<int> dp;
            int cnt = 0;
            for (int j = i; j < n; j += k) {
                auto it = upper_bound(dp.begin(), dp.end(), arr[j]);
                if (it == dp.end()) dp.push_back(arr[j]);
                else *it = arr[j];
                ++cnt;
            }
            ans += cnt - dp.size();
        }
        return ans;
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ACM算法日常 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【iOS】越狱后的“救命稻草”
pwn最近更新了好几次unc0ver,相信各位朋友已经在各大公众号,论坛看到了,这里就不说它了
zby1101
2020/08/05
9890
【iOS】越狱后的“救命稻草”
全系(iOS7-iOS14)清除越狱教程
前几天一个群友11.0.3想清除越狱了,这系统一看就是买来手机没升级过系统,为了保留系统,清除掉越狱,众所周知,10.3+有了系统快照(system snap)那就直接用snapback呗,后来询问得知,越狱环境也有问题,cydia装不上插件,后来小编请教了一位大佬,回忆起11.0-11.3可以利用脚本清理越狱,今天就整理一下iOS7-iOS14系清理越狱的教程吧(全凭小编自己的知识存储,可能某些系统还有别的方法,我尽可能的多写几种方法)
zby1101
2020/10/23
15.1K0
全系(iOS7-iOS14)清除越狱教程
【教程】checkra1n越狱教程+常用插件推荐
重要:越狱骨灰级玩家请忽略本篇文章,篇幅较长,大约2500+字,突有不适感,请返回上一页,继续忙你的事情
zby1101
2020/08/05
11K0
【教程】checkra1n越狱教程+常用插件推荐
iOS越狱是什么?大佬来解释来咯(一)
那么root是什么呢,无论安卓和iOS都有两个用户,一个是root,另一个是mobile,前者相当于windowns的system,也就是管理员administrator,后者相当于一个非管理员用户,没有拥有系统管理权限,通过一些特殊手段,例如第三方root工具,这里我就不详细说了,因为我接触安卓不多,不再赘述。
zby1101
2020/08/05
1.1K0
afc2add是什么_appsync怎么使用
APPsync是iPhone、iPad、iPod touch越狱后最常安装的补丁,安装后可以绕过系统验证,随意安装运行破解的ipa软件。
全栈程序员站长
2022/08/18
1.3K0
afc2add是什么_appsync怎么使用
iOS逆向工具之Cydia(iOS)软件介绍
我之前的工具介绍中,也有OpenSSH的介绍. 文章地址: 汇编逆向工具集(二) --> OpenSSH
conanma
2021/11/04
1.3K0
iOS逆向-ipa包重签名及非越狱手机安装多个微信
前一段时间学了点儿逆向相关的一些东西,但是都是基于越狱手机上的操作,给视频类应用去广告之类的。随着苹果生态圈的逐渐完善、及苹果对自身系统的保护越来越严格,导致现在的iPhone手机并不像以前那样存在大量的越狱用户。 前段时间我自己申请了个微信小号,申请小号的目的就是原来微信号好友中乱七八糟的人实在太多,感觉自己的朋友圈都是一些无关紧要的垃圾信息,曾经关闭了一段时间的朋友圈,但是最近遇到了好多技术上很强的同行,还想了解大佬们的动态。于是我就想着申请了个小号,但是麻烦来了,iPhone手机并不像安卓手机那
czjwarrior
2018/05/31
3.9K0
运维:推荐一款功能强大的磁盘分析工具——Files Inspector
Files Inspector是一款功能强大的磁盘分析工具,能够帮助用户随时查找并清除电脑磁盘中不需要的文件,同时还能清理不需要的数据。它还能够对Express测试进行分析,并分析文件夹、文档、图像、视频、音乐和其他文件,并显示磁盘上占用的空间。如果您需要此款工具,欢迎下载使用。
小明互联网技术分享社区
2024/04/16
5430
运维:推荐一款功能强大的磁盘分析工具——Files Inspector
如何在iPhone上安装Android操作系统,而且还不需要刷机,体验也很流畅
本文是教各位如何安装谷歌的Android操作系统到iPhone上。事先警告,动手能力不强,不喜欢折腾的同学还是不要试了。
知识与交流
2024/04/02
4K0
如何在iPhone上安装Android操作系统,而且还不需要刷机,体验也很流畅
iOS逆向之使用unc0ver越狱 iOS13.5
因为工作需要,笔者最近在研究越狱,网上看了很多文章,这篇文章记录了给iOS 13设备越狱的方式和过程,希望对你有帮助。
VV木公子
2020/09/11
13.1K0
iOS逆向之使用unc0ver越狱 iOS13.5
偏执的iOS逆向研究员:收集全版本的macOS iOS+越狱+内核调试
Intro 虽然“只有偏执狂才能够生存”这句话已经被假药停给毁了,但是作为一只有逼格的高大上的iOS逆向分析研究员,难道如果有现成的macOS/iOS全版本镜像可以下载并且无限“漫游”,难道你就不想来一套么? 在本文中,你将能够获得的是: 1.macOS:10.12、10.11、10.10、10.9、10.8、10.7:六个版本的虚拟机一键安装; 2 .使用苹果的KDK套件(Kernel Develop Kit)对虚拟机里的macOS Sierra 10.12进行内核调试; 3 .iPhone 4s
FB客服
2018/02/27
3K0
偏执的iOS逆向研究员:收集全版本的macOS iOS+越狱+内核调试
【iOS】浅析近期越狱工具+“平刷”工具
越狱工具:unc0ver,chimera,checkra1n(chimera1n)
zby1101
2020/08/05
6.2K0
【iOS】浅析近期越狱工具+“平刷”工具
IOS7完美越狱方法教程及工具下载
就在几天之前,Apple发布了IOS7 beta2测试版。相比于beta1而言,第二个测试版对于性能和稳定性都做出了不少优化,并且带来了Ipad支持。相信不少喜欢尝鲜的朋友已然更新到IOS7 beta2了。但对于国内的很多用户而言,越狱仍然是必不可少的一个步骤。虽然IOS7的越狱工具还没有出现,但如果你有一台iPhone 4,则可以利用已有的工具对IOS7进行越狱。
reizhi
2022/09/26
1.3K0
IOS7完美越狱方法教程及工具下载
iOS逆向之必要软件安装
通常,在iOS设备越狱后,需要安装一些必要的插件来增强越狱设备的可操作性。过去iOS设备越狱后大家首先会在cydia上添加pp源(http://apt.25pp.com)。但因为pp助手已停止服务,所以这个源已经不可用,对于一些cydia官方源没有提供的插件,我们需要自己寻找源或者寻找插件安装包。
VV木公子
2020/09/17
9.7K0
iOS逆向之必要软件安装
ios13.6降级13.3_ios14强制降级ios13
大家好,又见面了,我是你们的朋友全栈君。 演示 https://player.bilibili.com/player.html?aid=88886632 7p IOS13.3 bypass i
全栈程序员站长
2022/09/27
9540
(1)越狱环境搭建
什么是iOS Jailbreak(iOS越狱) 利用iOS系统漏洞,获取iOS系统的最高权限(Root),解开各种限制(合法行为) Jailbreak优缺点: 优点 自由安装各种实用的插件、主题、APP 修改系统APP的一些默认行为 自由安装非AppSore来源的APP 灵活管理文件系统,让iPhone可以像U盘那样灵活 给开发者提供了逆向工程的环境 缺点 不予保修 费电,越狱后的iOS系统会常驻一些进程,耗电速度约提升10%~20% 不再受iOS系统默认的安全保护,容易被恶意软件攻击,个人隐私
czjwarrior
2018/05/28
1.3K0
如何通过U盘越狱iPhone绕ID最新详细简单教程
3.将准备的U盘插上电脑,点击"Select drive",选中插上的U盘
知识与交流
2021/04/02
7.1K0
如何通过U盘越狱iPhone绕ID最新详细简单教程
手把手教大家学习,全网最详细的手机全机型 刷机教程
通俗来讲刷机就是给手机重装系统。刷机可以使手机的功能更加完善并且可以使手机还原到原始状态。一般情况下Android手机出现系统被损坏造成功能失效或无法开机也通常通过刷机来解决。一般Andriod手机刷机分为线刷卡刷。
知识与交流
2024/05/07
7K0
手把手教大家学习,全网最详细的手机全机型 刷机教程
iOS逆向之手动安装ipa
在对iOS app进行安全分析时,为了动态调试iOS app或者hook iOS app,需要先将app安装到手机中。有的iOS app可以通过App Store或者其他手机助手app直接下载安装,而另外的app如未签名app、或者从网上下载得到的app的安装文件ipa则需要通过手动安装到手机中。下文则主要介绍通过手动安装ipa到iOS设备中。
用户4682003
2022/05/19
3.5K0
iOS逆向之手动安装ipa
IOS 越狱插件介绍与一点经验
总体来说,如果你的系统是13.5的话(尚未升级到13.5.1),实际上整个流程比Android的Root还要简单。因为Iphone是我的主力机,为了避免不必要的麻烦,一直没有做越狱操作。
xuing
2020/06/17
3.1K0
IOS 越狱插件介绍与一点经验
相关推荐
【iOS】越狱后的“救命稻草”
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验