网易雷火,秋招一面

这个算法题蛮有意思的
提示之下才写出来on,之前都是写的on2

#九月投秋招是不是太晚了?##24届秋招同行攻略分享##你的秋招进行到哪一步了#
全部评论
我有个思路,时间复杂度是O(n),空间复杂度O(1)。遍历题目给的数组,如果当前数字和左边的数字奇偶不一,则取前面的值;反之,取前面的值➕1。例子1:3 6 7 0 得到数组1 1 1 1。例子2: 3 5 6 8 得到数组1 2 2 3 查询时判断fromi和toi是不是相同就知道是不是同一个奇偶区间了。空间复杂度为O1是因为可以在原数组上做修改,拿一个变量记录下原值。整体思想就是一个数组一定是由不同的奇偶区间组成的,我们只要知道开头和结尾是不是都在一个奇偶区间就行了。
10 回复 分享
发布于 08-23 10:44 湖北
感谢分享
4 回复 分享
发布于 08-22 23:28 黑龙江
这个是力扣每日一题上的吧 前段时间刚遇到
4 回复 分享
发布于 08-23 00:04 江苏
前缀和数组,定义:prefix[0] = 1,pre[i] += nums[i] ^ nums[i-1] & 1,i > 1 表示,只要第i个数和前一个数奇偶性不同,则第I个数为1 后面的就是求区间和了,O1秒了 只要区间和等于区间长度,则ok 否则不ok
2 回复 分享
发布于 08-23 09:25 浙江
学到了感谢
1 回复 分享
发布于 08-24 17:31 广东
编码然后用前缀和?不知道是不是,第一反应
1 回复 分享
发布于 08-26 15:56 上海
遍历数组,找到每一段特殊数组,标记为0123456… 如果j-i=arr[j]-arr[i]说明i…j是特殊数组
1 回复 分享
发布于 09-01 09:45 湖南
可以可以
点赞 回复 分享
发布于 09-18 13:03 湖北

相关推荐

评论
15
59
分享
牛客网
牛客企业服务