永发信息网

有N颗珠子,每颗珠子有不同种颜色,取出M种颜色包含珠子最多的

答案:1  悬赏:50  手机版
解决时间 2021-03-17 06:06
有N颗珠子,每颗珠子有不同种颜色,取出M种颜色包含珠子最多的
最佳答案
用暴力破解法很快,
两个指针分别表示最短包含m种颜色珠子的最短子串的首尾,这个很容易想到,但是要考虑清楚边界条件,为什么说这个子串是最短的,需要一个边界条件(最短序列中,包含首尾的珠子的颜色的个数一定是1)。例如:赤橙黄绿青蓝紫,就是最短子串(首尾珠子的颜色赤、紫,该序列包含赤、紫颜色的珠子各1个),而 赤橙黄绿赤青蓝紫 一定不是最短子串(因为首位的珠子是赤色,而包含赤色的珠子共两颗,因此,最短子串是 橙黄绿赤青蓝紫)。
bool judgeColors(vector colors) { for (int i = 0; i < colors.size(); i++) { if (!colors[i]) { return false;
}
} return true;
}int findMcolors(vector colors, int n, int m) { int ans = n + 1; int l = 0, r = 0; vector index(m, 0); while (r < n) {
index[colors[r++] - 1]++; while (judgeColors(index)) { if (index[colors[l] - 1] == 1) {
ans = (r - l) > ans ? ans : (r - l);
}
index[colors[l++] - 1]--;
}
} if (ans > n) { return -1;
} return ans;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
百分数就是分数是100的分数吗???
请问如皋市民政局的|电话号码是多少‘
什么叫双面刀片
科三考过了约科四尽然显示科三不及格
如何约女网友,出来玩,还要防止女网友就是为
因在教室外面和别人说话的检讨3000字
this shirt ( )nice填空
金源路口西老山早市多远的路程。
华联商厦回龙观店停车场我想知道这个在什么地
烦事有得倾20150910
哪里有卖海芙蓉
内蒙古通辽的男孩怎么样?
怎么在不开COD5的条件下更改COD5分辨率
东南dx7油耗手动挡陆风x52.0t手动挡油耗差多
资金周转不过~永远是最痛苦的事情!明明拥有
推荐资讯
2018年乐视和小米电视55寸的那个好
什么地方招拳击陪练
草堂十志原文
致正.宋品牌创始人诸葛春光有开淘宝店吗
养尊处优怎么造句是造句
有人进公司的192.168.1.1,我想查出来进192.1
三星手机小组件的搜索长形图标不见了
木工雕刻机xy軸不是90度是什么原因
花11万买07年的雷克萨斯350值吗
如何将三星note5的通讯录导入iphone7plus
怎样熬葡萄酒
禾丰地产地址在哪,我要去那里办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?