当数字到数字的距离是数字本身时,将数组从1填充到n [英] Fill the array from 1 to n when the distance from number to number is the number itself

查看:84
本文介绍了当数字到数字的距离是数字本身时,将数组从1填充到n的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我接受了老师的挑战,我想知道如何解决它:来自用户int'n'的输入。给定一个用数字填充的数组:从'1'到'n'的每个数字在数组中出现两次。 (当n = 2时:两个1的两个2),目标是对数组中的数字进行排序,使每对数字的距离与数字的值相同。

示例:

I got a challenge from my teacher and I would like to have an idea on how to solve it: input from the user int 'n'. Given an array filled in with numbers: every number from '1' to 'n' appears twice in the array. (when n=2: two 1's two 2's) the goal is to sort the numbers in the array so that the distance from every pair of numbers will be the same as the value of the number.
Example:

int n = 4;
int [] sortedArray = {3 , 4 , 2 , 3 , 2 , 4 , 1 , 1};





如你所见,从第一个'3'到下一个'3'的距离是3,从第一个'2'到下一个'2'的距离是2,依此类推。



数组的长度为n * 2.

有一些'n'值无法排序(如10,2)



我尝试了什么:



我试图填充数组n = 5,并搜索一种模式。



as you can see, the distance from the first '3' to the next '3' is 3, the distance from the first '2' to the next '2' is 2 and so on.

The length of the array will be n*2.
There are some values of 'n' which would not be possible to sort (like 10,2)

What I have tried:

I have tried to fill the array with n=5, and search for a kind of a pattern.

n=5
int [] sortedArray = {1,1,3,4,5,3,2,4,2,5};





找不到任何模式。



couldn't find any pattern.

推荐答案

谷歌翻译建议如下:我得到了我的作业,我希望你这样做 - 因此在Stack溢出的重复发布 java - 当数字到数字的距离是数字本身时,将数组从1填充到n - Stack Overflow [ ^ ]



我们不做你的作业:这是有原因的。它就是为了让你思考你被告知的事情,并试着理解它。它也在那里,以便您的导师可以识别您身体虚弱的区域,并将更多的注意力集中在补救措施上。

如果没有别的东西浮现在脑海中,总会有蛮力和无知尝试每种组合的解决方案,直到一个有效......



自己动手,你可能会发现它并不像你想象的那么难!



如果您遇到特定问题,请询问相关问题,我们会尽力提供帮助。但是我们不会为你做这一切!
Google translate suggests the following: "I got given my homework and I want you to do it" - hence the duplicate posting on Stack overflow java - filling the array from 1 to n when the distance from number to number is the number itself - Stack Overflow[^]

We do not do your homework: it is set for a reason. It is there so that you think about what you have been told, and try to understand it. It is also there so that your tutor can identify areas where you are weak, and focus more attention on remedial action.
If nothing else springs to mind, there is always the brute-force-and-ignorance solution of trying every combination until one works...

Try it yourself, you may find it is not as difficult as you think!

If you meet a specific problem, then please ask about that and we will do our best to help. But we aren't going to do it all for you!


你不知道填充阵列的具体方法。

但是你知道怎么做手动填充数组,你遵循你发明的算法。

你的程序将遵循相同的算法。

如果你的代码遇到特定问题,请回来。



我们不做你的HomeWork。

HomeWork不会测试你乞求别人做你的工作的技巧,它是让您思考并帮助您的老师检查您对所学课程的理解以及您应用这些课程时遇到的问题。

你的任何失败都会帮助你的老师发现你的弱点并设定补救措施。

你的任何失败都会帮助你了解什么有效,什么无效,被称为'试错'学习。

所以,试一试,重读课程并开始工作。如果您遇到特定问题,请显示您的代码并解释这个问题,我们可能会提供帮助。



作为程序员,您的工作是创建算法解决特定问题,你不能依赖别人永远为你做,所以有一段时间你必须学会​​如何。而且越快越好。

当你要求解决方案时,就像试图通过培训其他人来学习开车一样。

创建算法基本上是找到数学并做出必要的调整以适应你的实际问题。



发展的概念就像这个词所暗示的那样:系统地使用科学和满足特定目标或要求的技术知识。 BusinessDictionary.com [ ^ ]

这与有一个不一样快速谷歌并放弃,如果我找不到正确的代码。
You don't know a specific way to fill the array.
But you know how to fill the array by hand, you follow an algorithm that you invented.
Your program will follow the same algorithm.
Come back if you get a specific problem on your code.

We do not do your HomeWork.
HomeWork is not set to test your skills at begging other people to do your work, it is set to make you think and to help your teacher to check your understanding of the courses you have taken and also the problems you have at applying them.
Any failure of you will help your teacher spot your weaknesses and set remedial actions.
Any failure of you will help you to learn what works and what don't, it is called 'trial and error' learning.
So, give it a try, reread your lessons and start working. If you are stuck on a specific problem, show your code and explain this exact problem, we might help.

As programmer, your job is to create algorithms that solve specific problems and you can't rely on someone else to eternally do it for you, so there is a time where you will have to learn how to. And the sooner, the better.
When you just ask for the solution, it is like trying to learn to drive a car by having someone else training.
Creating an algorithm is basically finding the maths and make necessary adaptation to fit your actual problem.

The idea of "development" is as the word suggests: "The systematic use of scientific and technical knowledge to meet specific objectives or requirements." BusinessDictionary.com[^]
That's not the same thing as "have a quick google and give up if I can't find exactly the right code".


这篇关于当数字到数字的距离是数字本身时,将数组从1填充到n的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆