Shoppe笔试4.15 编程题1.5/3

第一道:先跳过了后来也没来得及回来做
第二题:算出所有加起来等于0的序列,我真的很纳闷,这是一道典型的三数之和的题目,用排序+ 双指针做可以把时间复杂度从O(n ^3)变成O(n ^ 2), 然而当我信心慢慢以为要AC的时候,竟然只过了百分之60?不知道各位大佬是怎么做的?能不能跟我分享一下思路,这题还需要更优解吗
下面是代码
package Testing;
import java.util.*;


import javax.xml.soap.Node;
public class Main 
{
	public static void main(String [] args)
	{
		Scanner scan = new Scanner(System.in);
		String input  = scan.nextLine();
		String[] arr = input.split(",");
		int[] numberArr = new int[arr.length];
		ArrayList<ArrayList<Integer>> output = new ArrayList<ArrayList<Integer>>();
		for(int i = 0; i < arr.length; i++)
			numberArr[i] = Integer.parseInt(arr[i]);
		Arrays.sort(numberArr);
	
		for(int i = 0; i < numberArr.length - 2; i++)
		{
			int left = i + 1;
			int right = numberArr.length - 1;
			while(left < right)
			{
				int sum = numberArr[i] + numberArr[left] + numberArr[right];
				if(sum == 0)
				{
					ArrayList<Integer> temp = new ArrayList<Integer>();
					temp.add(numberArr[i]);
					temp.add(numberArr[left]);
					temp.add(numberArr[right]);
					output.add(temp);
					left++;
					right--;
				}
				else if(sum > 0)
					right--;
				else if(sum < 0)
					left++;
			}
		}
		String finaloutput = "";
		finaloutput += output.get(0);
		for(int i = 1; i < output.size() - 1;i++)
			finaloutput += "," + output.get(i);
	
		System.out.print(finaloutput.replace(" ", ""));
	
	}
	

}
第三题:经典的机器人行走DP问题,直接AC

#shopee笔试##Testin云测##笔试题目#
全部评论
我也只有57.%,我以为是重复的答案的问题,然后拿哈希表过滤答案也一样
1 回复 分享
发布于 2020-04-15 12:48
第二题和你一样的方法,70多,也没a,不知道为啥
点赞 回复 分享
发布于 2020-04-15 12:43

相关推荐

黑皮白袜臭脚体育生:简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写会更好另外宣传下自己的开源仿b站微服务项目,GitHub已经410star,牛客上有完整文档教程,如果觉得有帮助的话可以点个小星星,蟹蟹
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
5
分享

创作者周榜

更多
牛客网
牛客企业服务