Longest Cycle in a Graph LeetCode solution in Java
1class Solution {2public int longestCycle(int[] edges) {3int[] map = new int[edges.length];4int result = -1;56for (int i = 0; i < edges.length; i++) result = Math.max(result, helper(i, 1, edges, map));78return result;9}1011int helper(int index, int total, int[] edges, int[] map) {12if (index == -1 || map[index] == -1) return -1;1314if (map[index] != 0) return total - map[index];1516map[index] = total;17int result = helper(edges[index], total + 1, edges, map);18map[index] = -1;1920return result;21}22}