
3条回答 默认 最新
俺不理解 2021-12-16 10:21关注public class Test { public void print(int lineSum) { int sum = (lineSum + 1) * lineSum / 2; int p = 0; List<List<Integer>> lists = new ArrayList<>(); // 1 2 -1 -2 int dir = 1; int line = -1; while (p++ < sum) { line += dir > 0 ? 1 : (dir == -1 ? -1 : 0); if (line >= lists.size()) { List<Integer> list = new LinkedList<>(); list.add(p); lists.add(list); dir = dir == 1 ? 2 : -1; } else { lists.get(line).add(p); dir = dir > 0 ? dir : (dir == -1 ? (line == 0 ? -2 : -1) : 1); } } printVals(lists); } public static void main(String[] args) { Test solution = new Test(); solution.print(10); } }输出示例
解决 无用评论 打赏 举报 编辑记录