《一线大厂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;
}
};
-
这两种操作其实都是取模操作,都有周期性,完全可以可以暴力枚举所有情况。
-
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;
}
};
这题的思维的跳跃点实际上是二维降成一维排序。
- 最长上升子序列和
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面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!