米哈游
今日搬家,又不忍破坏良好的更新习惯,随便上来聊聊最近见闻。
众所周知,原神是世界级的好游戏,原神的开发商「米哈游」的 slogan 是"TECH OTAKUS SAVE THE WORLD(技术宅拯救世界)"。
但如今,米哈游似乎要推翻自己,又或者说 99.999% 的开发者,未来将不能再被称为技术宅。
8月28日,蔡浩宇在个人领英主页上发文表示,未来游戏创造将只属于两类人,顶尖的天才团队和业余爱好者。未来 0.0001% 的顶尖人才将组成精英团队,创造出前所未有的游戏作品,对于其他普通到专业级的开发者,建议可以考虑转行了。他们的工作将会被 99% 的业余爱好者所取代,因为 AIGC 可以帮助他们根据自己的兴趣随意创造游戏。
蔡老板或许是最近看到了一些与游戏 AIGC 相关的研究成果,有感而发,但有些规律是从碳基生命诞生以来就从未失效,任何一个成功的产品(例如最近的《黑神话:悟空》)的诞生,从来不是因为聚集了一堆天才成员,而必然是一个或几个的绝对 leader 带着几十或几百人做出来,从更宏观的角度来看,历史必然是极少数人拖着时代螺旋式地前进,而非极少数人摆脱人类大部队,独立前行。
除非,这"极少数人"并非碳基生命,而是其他文明(例如现在的 AI - 硅基生命),但若真如此,也不存在蔡老板所说的由 0.0001% 的顶尖人才做领头羊,而是全新版本的白垩纪。
关于 AI,或许模型进化的脚步尚未停止,但无论是资本的态度,还是普罗大众的兴趣,都开始逐渐"降温",对于那些"AI 革命"绝对论调,你心里的答案是否还和刚开始的一样?
...
回归主线。
随便来一道睡前小算法,明天再安排「神仙公司系列」。
题目描述
平台:LeetCode
题号:485
给定一个二进制数组, 计算其中最大连续 1 的个数。
示例:
输入:[1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
提示:
-
输入的数组只包含 0
和1
-
输入数组的长度是正整数,且不超过
双指针
使用 l
和 r
作为左右端点,找最长连续 1 的连续段。
起始让 l = 0
,若当前值 nums[l]
为 0,跳过,直接让 l
右移到下一位;若当前值 num[l]
为 1,此时让 r = l
,然后往后找最远的符合条件的右边界(当 r
越过数组边界或 nums[r] = 0
时停止),此时
均为 1,长度为
,用此更新 ans
,然后让 l
移到 r + 1
位置继续处理(其中 l
以
作为左端点的无须检查,因为寻找右边界的过程,必然会被 r
位置中断,长度必然不大于
)。
Java 代码:
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int n = nums.length, ans = 0;
for (int l = 0; l < n; ) {
if (nums[l] == 0 && ++l >= 0) continue;
int r = l;
while (r < n && nums[r] == 1) r++;
ans = Math.max(ans, r - l);
l = r + 1;
}
return ans;
}
}
C++ 代码:
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int n = nums.size(), ans = 0;
for (int l = 0; l < n;) {
if (nums[l] == 0 && ++l < n) continue;
int r = l;
while (r < n && nums[r] == 1) ++r;
ans = max(ans, r - l);
l = r + 1;
}
return ans;
}
};
Python 代码:
class Solution:
def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
n, ans = len(nums), 0
l, r = 0, 0
while l < n:
if nums[l] == 0:
l += 1
continue
r = l
while r < n and nums[r] == 1:
r += 1
ans = max(ans, r - l)
l = r + 1
return ans
TypeScript 代码:
function findMaxConsecutiveOnes(nums: number[]): number {
let n = nums.length, ans = 0;
for (let l = 0, r = 0; l < n; ) {
if (nums[l] == 0 && ++l >= 0) continue;
r = l;
while (r < n && nums[r] == 1) r++;
ans = Math.max(ans, r - l);
l = r + 1;
}
return ans;
};
-
时间复杂度: -
空间复杂度:
最后
巨划算的 LeetCode 会员优惠通道目前仍可用 ~
使用福利优惠通道 leetcode.cn/premium/?promoChannel=acoier,年度会员 有效期额外增加两个月,季度会员 有效期额外增加两周,更有超大额专属 🧧 和实物 🎁 福利每月发放。
我是宫水三叶,每天都会分享算法知识,并和大家聊聊近期的所见所闻。
欢迎关注,明天见。
更多更全更热门的「笔试/面试」相关资料可访问排版精美的 合集新基地 🎉🎉