最长特殊序列(二)

解决方案

方法一:暴力解法 【超出时间限制】

暴力解法中,生成两个字符串所有的子序列共 2的 n 个,将其存储在 hashmap 中,并记录每个子序列出现的次数。然后找出出现次数为 1 的最长子序列。如果不存在这样的子序列,返回 −1 。

Java 实现

复制代码
public class Solution {
    public int findLUSlength(String a, String b) {
        HashMap < String, Integer > map = new HashMap < > ();
        for (String s: new String[] {a, b}) {
            for (int i = 0; i < (1 << s.length()); i++) {
                String t = "";
                for (int j = 0; j < s.length(); j++) {
                    if (((i >> j) & 1) != 0)
                        t += s.charAt(j);
                }
                if (map.containsKey(t))
                    map.put(t, map.get(t) + 1);
                else
                    map.put(t, 1);
            }
        }
        int res = -1;
        for (String s: map.keySet()) {
            if (map.get(s) == 1)
                res = Math.max(res, s.length());
        }
        return res;
    }
}

复杂度分析

相关推荐
天天爱吃肉82186 小时前
【跨界封神|周杰伦×王传福(陶晶莹主持):音乐创作与新能源NVH测试,底层逻辑竟完全同源!(新人必看入行指南)】
python·嵌入式硬件·算法·汽车
im_AMBER6 小时前
Leetcode 114 链表中的下一个更大节点 | 删除排序链表中的重复元素 II
算法·leetcode
考琪6 小时前
Nginx打印变量到log方法
java·运维·nginx
薛定谔的猫喵喵6 小时前
基于PyQt5的视频答题竞赛系统设计与实现
开发语言·qt·音视频
岱宗夫up6 小时前
Python 数据分析入门
开发语言·python·数据分析
xhbaitxl6 小时前
算法学习day38-动态规划
学习·算法·动态规划
多恩Stone6 小时前
【3D AICG 系列-6】OmniPart 训练流程梳理
人工智能·pytorch·算法·3d·aigc
wangjialelele6 小时前
Linux中的进程管理
java·linux·服务器·c语言·c++·个人开发
码界筑梦坊6 小时前
325-基于Python的校园卡消费行为数据可视化分析系统
开发语言·python·信息可视化·django·毕业设计
历程里程碑6 小时前
普通数组----轮转数组
java·数据结构·c++·算法·spring·leetcode·eclipse