PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
java
[问题] array 长度
楼主:
kasey
( )
2017-07-17 14:07:21
大家好,我初学Java没多久,最近遇到一个问题。假设有一个 array 里面的数字不重复
,任意给定一个数字,在不用循环的情形下要怎么算此 array 的长度呢?我目前是想到
用 recursion ,可是我写的结果都没有成功 orz,麻烦各位大大解惑
用循环的程式如下:
int length(int [] s, int x)
int l;
int y = x;
while (true) {
if (s[x] == y) {
return l;
}
x = s[x];
++l;
}
}
作者:
ssccg
(23)
2017-07-17 14:13:00
array.length?你要算的长度到底是什么东西
楼主:
kasey
( )
2017-07-17 14:17:00
就是array.length 但是不能用array.length()也不能用循环...
作者:
ssccg
(23)
2017-07-17 14:25:00
array的长度跟array的内容有关系? 你这是解题目的话至少完整描述题目吧... 不然为什么不用array.length
作者:
s06i06
(三条鱼)
2017-07-17 14:29:00
没看懂题目在说什么 算长度参数传一个x干嘛
楼主:
kasey
( )
2017-07-17 14:32:00
测试用的 array s 里的元素是不重复的数字。如果长度是6,则数字是0~5任意排列。
作者:
ssccg
(23)
2017-07-17 14:39:00
所以要求的是array内容的最大值? 另外你说不能用循环那你的while是?
楼主:
kasey
( )
2017-07-17 14:43:00
要求的是 array 的长度,int x 是一开始先丢一个任意0~5的数字进去。while 是题目给的示范,但是有另外要求不能用循环写但是函式还是 int length(int [] s, int x),只是内容不能用循环
作者:
ssccg
(23)
2017-07-17 14:51:00
我觉得题目看起来是求存在array里的circular linked list长度,不是array的长度,x代表的是这个list的head pointer
楼主:
kasey
( )
2017-07-17 15:07:00
唔... 这么一说感觉有点像。那如果从他给的示范改成递回的形式,该怎么改好呢?
作者:
ssccg
(23)
2017-07-17 15:56:00
int len(int[] s, int x, int y) {return s[x] == y ? 1 : 1 + len(s, s[x], y); }length内容为 return len(s, x, x)要跟你的版本一样的话条件成立时要return 0,不过我觉得 1的结果才合理,这题目head不会是null所以至少一个node
楼主:
kasey
( )
2017-07-18 01:28:00
谢谢。可是有办法用 int len(int[] s, int x) 写吗?我目前依他的条件找不到好方法存第一个 x 去比较
作者: Schaos
2017-07-18 02:01:00
你可以在递回前留一份啊,题目没限制变量数量。
楼主:
kasey
( )
2017-07-18 02:14:00
变量只能写在length()里,可是都会被update... 不太晓得该怎么留
作者:
ssccg
(23)
2017-07-18 10:15:00
一定需要的东西想办法塞进参数里,需要记下来的放在localvariable其实题目 ONLY AFTER ... 那句是很大的提示了
继续阅读
[问题] 找出阵列的最小公倍数
lumixfilm
[问题] Vector循环填值的问题
conlich
[问题] package exploer 要怎么开启?
yee232yee
[问题] 如何解决javaw CPU使用率100%的问题
eva19452002
[问题] 关于x&y的运作
wsx247
Re: [网站] 资料结构练习系统开放试用
infomandyu
[网站] 资料结构练习系统开放试用
infomandyu
[JSP ] filter实作后没办法正常到其他网页
zelkova
[问题] SecureRandom的原理是什么?
sky800507
[问题] Tomcat 外部连线问题
jeep168917
Links
booklink
Contact Us: admin [ a t ] ucptt.com