LeetCode 第 211 场周赛 (哈希表、字符串(取模、枚举)、排序+最长上升子序列和、筛法求约数+并查集)

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

for(int i=0;i<s.size();i++){

char c = s[i];

mp[c].push_back(i);

}

int ans = -1;

for(const auto &it:mp){

auto &v = it.second;

ans = max(ans,v.back()-v[0]-1);

}

return ans;

}

};

1625. 执行操作后字典序最小的字符串

  • 这两种操作其实都是取模操作,都有周期性,完全可以可以暴力枚举所有情况。

  • b是偶数的话只能变动奇数位的数字,否则还可以变动偶数位的数字,两层循环分别枚举就可以了。

  • 小技巧,将s拼接成两份,然后截取子串就可以实现类似队列的循环操作。

  • 枚举

  • 时间复杂度: O ( S 2 ∗ D 2 ) O(S2*D2) O(S2∗D2)

class Solution {

public:

string findLexSmallestString(string s, int a, int b) {

int n = s.size();

string ans = s;

string t = s + s;

int g = gcd(n, b);

for (int i = 0; i < n; i += g) {

string p = t.substr(i, n);

for (int j = 0; j <= 9; ++j) {

int th = g % 2 == 0 ? 0 : 9; //

for (int k = 0; k <= th; ++k) {

string q§;

for (int t = 1; t < n; t += 2)

q[t] = ‘0’ + (q[t] - ‘0’ + a * j) % 10;

for (int t = 0; t < n; t += 2)

q[t] = ‘0’ + (q[t] - ‘0’ + a * k) % 10;

ans = min(ans, q);

}

}

}

return ans;

}

};

  • BFS暴力+unordered_set去重

class Solution {

public:

string findLexSmallestString(string s, int a, int b) {

unordered_set vis;

vis.insert(s);

string ans = s;

queue q;

q.push(s);

int len = s.size();

while(!q.empty()){

string cur = q.front();

q.pop();

if(cur<ans) ans = cur;

string nxt = cur.substr(len-b,b)+cur.substr(0,len-b);

if(vis.find(nxt)==vis.end()){

vis.insert(nxt);

q.push(nxt);

}

for(int j=1;j<len;j+=2){

cur[j] = char((cur[j]-‘0’+a)%10+‘0’);

}

if(vis.find(cur)==vis.end()){

vis.insert(cur);

q.push(cur);

}

}

return ans;

}

};

1626. 无矛盾的最佳球队

这题的思维的跳跃点实际上是二维降成一维排序

  • 最长上升子序列和

class Solution {

public:

int bestTeamScore(vector& scores, vector& ages) {

int n = scores.size();

vector<pair<int,int>> v(n);

for(int i=0;i<n;i++){

v[i] = {ages[i],scores[i]};

}

sort(v.begin(),v.end());

vector f(n,0);

int ans = 0;

for(int i=0;i<n;i++){

f[i] = v[i].second;

for(int j=0;j<i;j++){

if(v[i].second>=v[j].second){

最后

经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。







由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
…(img-klv8SSbc-1714510331670)]
[外链图片转存中…(img-QwvrD14U-1714510331671)]

由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值