最近人大代表雷军在接受记者采访时表示:在人工智能时代,或许很多规则将被重写,但同时又会产生很多新的岗位。雷军建议,大家要用开放的心态,迎接更先进的时代。未来也许不再需要每天工作8小时、每周工作5天了,或许一周仅需工作3天,每天工作2个小时。我们的生活质量、工作质量都会大幅度提升。
这让我想起最近突然爆火的养龙虾,也就是开源智能体OpenClaw,据说它可以帮助人们处理邮件,写PPT,写代码、操作电脑、做表格、查资料等。人工智能时代已经到来,等这一天我等了很久,希望小米能起到带头作用,一周不需要工作3天,每天2小时。每周能工作4天,每天工作6小时,我就很知足了。。
![]()
![]()
![]()
--------------下面是今天的算法题--------------
来看下今天的算法题,这题是LeetCode的第1980题:找出不同的二进制字符串,难度是中等。
给你一个字符串数组 nums ,该数组由 n 个互不相同的二进制字符串组成,且每个字符串长度都是 n 。请你找出并返回一个长度为 n 且没有出现在 nums 中的二进制字符串。如果存在多种答案,只需返回 任意一个 即可。
示例1:
输入:nums = ["00","01"] 输出:"11" 解释:"11" 没有出现在 nums 中。"10" 也是正确答案。
示例2:
输入:nums = ["111","011","001"] 输出:"101" 解释:"101" 没有出现在 nums 中。"000"、"010"、"100"、"110" 也是正确答案。
n == nums.length
1 <= n <= 16
nums[i].length == n
nums[i] 为 '0' 或 '1'
nums 中的所有字符串 互不相同
问题分析
有 n 个 0 和 1 组成的最大数字不会超过 1<< n,因为 n 最大是 16 ,所以我们可以申请一个长度为 1<< n 的数组,并记录字符串对应的数字在该数组中已经存在,然后再遍历该数组,查找第一个未出现的数字,把它转化为 n 位二进制即可。
JAVA:
public String findDifferentBinaryString(String[] nums) {
int n = nums.length;
// vis[i]表示数字 i 是否存在
boolean[] vis = newboolean[1 << n];
for (String num : nums)
vis[Integer.parseInt(num, 2)] = true;int ans = 0;
for (int i = 0; i < 1 << n; i++) {
if (!vis[i]) {// 查找第一个不存在的数字
ans = i;
break;
}
}
StringBuilder sb = new StringBuilder(Integer.toBinaryString(ans));
while (sb.length() < n)// 补齐前导0
sb.insert(0, "0");
return sb.toString();
}
C++:
public:
string findDifferentBinaryString(vector &nums) {
int n = nums.size();
// vis[i]表示数字 i 是否存在
vector vis(1 << n, false);
for (conststring &num: nums)
vis[stoi(num, nullptr, 2)] = true;int ans = 0;
for (int i = 0; i < 1 << n; i++) {
if (!vis[i]) {// 查找第一个不存在的数字
ans = i;
break;
}
}
// 将十进制数转换为二进制字符串(无前置0)
string binary_str = bitset<32>(ans).to_string();
// 截取最后n位(因为bitset会生成32位字符串,前面都是0)
binary_str = binary_str.substr(32 - n);
return binary_str;
}
笔者简介
博哥,真名:王一博,毕业十多年, 作者,专注于 数据结构和算法 的讲解,在全球30多个算法网站中累计做题2000多道,在公众号中写算法题解900多题,对算法题有自己独特的解题思路和解题技巧。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.