Java算法--百度真题
第一道题
给定一个字符串str,和一个正数k
str子序列的字符种数必须是k种,
返回有多少子序列满足这个条件
已知str中都是小写字母
//递归
public static int way(String str, int k) {
int[] array = new int[26];
for(char ch : str.toCharArray()) {
int temp = (int) ch;
temp = temp % 97;
array[temp] ++;
}
return process(array, 0, k);
}
public static int process(int[] array, int index, int k) {
if(index == array.length) {
return k == 0 ? 1 : 0;
}
int p1 = process(array, index + 1, k);
int p2 = 0;
if(array[index] != 0 && k > 0) {
p2 = ((1 << array[index]) - 1) * process(array, index + 1, k - 1);
}
return p1 + p2;
}
//缓存
public static int way1(String str, int k) {
int[] array = new int[26];
for(char ch : str.toCharArray()) {
int temp = (int) ch;
temp = temp % 97;
array[temp] ++;
}
int[][] dp = new int[26 + 1][k + 1];
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
八股文+场景题+算法真题 文章被收录于专栏
Java全新整理八股文 + 场景题 + 算法 精心设计,面试命中率超过80% 专栏优势: 1、问题和答案已经整理到位,答案更专业,可以直接回答,不需要额外总结! 2、场景题讲解清晰,适用于大部分场景的项目,并且持续更新中 3、分享学习心得【知识点的广度和深度,算法有哪些坑,如何准备面试等等】

