360笔试散步题91% 求解

#include<iostream>
#include<vector>

using namespace std;

vector<int> res;

int M, N;

void findWay(int i, int index, vector<int> &road){
	if (i < 1 || i > N) return;
	if(index == road.size()){
		if (i >= 1 && i <= N)
			res.push_back(i);
		return;
	}

	findWay(i - road[index], index + 1, road);
	findWay(i + road[index], index + 1, road);
}

int main(){
	int tmp;
	cin >> N >> M;

	vector<int> road;
	for (int i = 0; i < M; i++){
		cin >> tmp;
		road.push_back(tmp);
	}

	for (int i = 1; i <= N; i++)
		findWay(i, 0, road);

	vector<int> rres(res.size());
	for (int i = 0; i < res.size(); i++)
		rres[res[i]]++;

	int ways = 0;
	for (int i = 0; i < rres.size();i++)
		if (rres[i] != 0) ways++;

	cout << ways;
	return 0;
}

调测试用例去了。。代码有点丑陋,多担待,差那 9%差在哪了。。。求大佬指错
#360公司##笔试题目#
全部评论
我直接输出8和0就到91%了。。。
点赞 回复 分享
发布于 2019-08-31 18:10
我也是 求解
点赞 回复 分享
发布于 2019-08-31 18:04
全是大佬  18的不敢说话
点赞 回复 分享
发布于 2019-08-31 18:06
python可以参考 https://blog.csdn.net/z13653662052/article/details/100175482
点赞 回复 分享
发布于 2019-08-31 18:06
仔细看了下,这个rres可能会越界
点赞 回复 分享
发布于 2019-08-31 18:19
n,m = map(int,input().split()) nums = [] for i in range(m):     nums.append(int(input())) class sol:     def __init__(self): #         self.seen = set()     def dfs(self,nums,n,m,pos,step): # 停止条件:如果是最后一次看时间后走的         if step == m:             if pos not in self.seen:                 self.seen.add(pos)             return # 剪枝 保证始终在坐标轴范围递归         if 1 <= pos + nums[step]  <= n:             a = pos + nums[step]             self.dfs(nums,n,m,a,step+1)         if 1 <= pos - nums[step]  <= n:             b = pos - nums[step]             self.dfs(nums,n,m,b,step+1)         return     def main(self): # 以坐标轴的每个起点为出发点进行递归         for pos in range(1,n+1):             self.dfs(nums,n,m,pos,0)         print(len(self.seen)) test = sol() test.main() 基本思想:DFS + 剪枝 以坐标轴的每个起点为出发点进行递归, 在坐标轴范围内以不同行走方向不断遍历行走,直到最后一次看时间之后
点赞 回复 分享
发布于 2019-08-31 18:20
我只有9%也是醉了
点赞 回复 分享
发布于 2019-08-31 18:05
我也是91 调了半天没调出来
点赞 回复 分享
发布于 2019-08-31 18:05
我这样暴力怎么只过了64,就说我超时了....
点赞 回复 分享
发布于 2019-08-31 18:07
写出代码测试用例不过,以为要gg,运行一下,发现百分之73😓
点赞 回复 分享
发布于 2019-08-31 18:08
答案问的是可能的终点的数量,不是起点数量
点赞 回复 分享
发布于 2019-08-31 18:12
同91 dfs
点赞 回复 分享
发布于 2019-08-31 18:13
https://www.nowcoder.com/discuss/240269?toCommentId=3786919
点赞 回复 分享
发布于 2019-08-31 18:18
index会越界,加个判断就好了
点赞 回复 分享
发布于 2019-08-31 18:22
我两道编程都没思路😓 第二题用的cout<<2^n  82%
点赞 回复 分享
发布于 2019-08-31 18:24
蹲一个思路
点赞 回复 分享
发布于 2019-08-31 18:24
谁能解释一下样例 为啥是8啊? 10 3 5 2 6
点赞 回复 分享
发布于 2019-08-31 18:50
是不是某些情况下会有两种解
点赞 回复 分享
发布于 2019-08-31 18:54
res[i]一定小于res.size()吗?
点赞 回复 分享
发布于 2019-09-01 00:50
5 2 6一定是这个顺序吗?可不可以526,562,256,265,625,652
点赞 回复 分享
发布于 2019-09-02 14:55

相关推荐

ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
今天 11:23
重庆邮电大学 C++
点赞 评论 收藏
分享
2 10 评论
分享
牛客网
牛客企业服务