Tag: 递归

删除双向递归关系的最简单方法是什么?

我使用Gson库将Java对象转换为Json响应…问题是,在JPA请求之后,由于与其他实体的递归关系而无法转换从DB检索的对象( 请参阅我之前的问题 ),例如: public class Gps implements Serializable { private static final long serialVersionUID = 1L; @Id @Basic(optional = false) @Column(name = “IMEI”, nullable = false, length = 20) private String imei; //some code here… @OneToMany(cascade = CascadeType.ALL, mappedBy = “gpsImei”, fetch = FetchType.LAZY) private List coordonneesList; public class Coordonnees implements Serializable { private static […]

使用递归查找数组中的最大值

对于我被要求解决的一个问题,我发现使用for循环的数组的最大值,所以我试图使用递归找到它,这就是我想出的: public static int findMax(int[] a, int head, int last) { int max = 0; if (head == last) { return a[head]; } else if (a[head] < a[last]) { return findMax(a, head + 1, last); } else { return a[head]; } } 因此它工作正常并获得最大值,但我的问题是:是否可以为基本情况返回[head]并且对于头部的值是>最后值的情况?

打破java中的递归

递归是一种“分而治之”的风格,它在变小时分裂(树数据结构),如果发现违规,我希望它完全破坏,意味着打破所有递归路径,并返回true。 这可能吗?

有没有办法在Java中进行n级嵌套循环?

换句话说,我可以做类似的事情 for() { for { for { } } } 除了N次? 换句话说,当调用创建循环的方法时,会给它一些参数N,然后该方法会创建N个嵌套在另一个中的N? 当然,我们的想法是应该有一种“简单”或“通常”的方式。 我已经有了一个非常复杂的想法。

理解基本递归

public static void main (String[] args) { System.out.println(factorial(5)); } public int factorial(int n) { if(n <= 1){ return 1; } else{ return n * factorial(n – 1); } } 我直接在这里写了以上内容,所以可能无法编译,但认为它确实如此。 任何人都可以简单地解释它是如何工作的,它是如何存储的? 它首先计算5 *(5-1),然后下降到4 *(4-1)然后3 *(3-1)…..直到它变为1,它将刚刚返回1? 抱歉这么粗略我只想知道它是如何工作的 谢谢 但随着它的运作 – 它获得了各个阶段的价值 5 *(5-1)4 *(4-1)…… …… 这些如何存储然后检索回来或者我错过了什么?

什么是在Java中以递归方式反转字符串的最佳方法?

我今天一直在搞乱递归。 通常编程技术不够用。 我开始以递归方式反转一个字符串。 这就是我想出的: //A method to reverse a string using recursion public String reverseString(String s){ char c = s.charAt(s.length()-1); if(s.length() == 1) return Character.toString(c); return c + reverseString(s.substring(0,s.length()-1)); } 我的问题:Java中有更好的方法吗?