仅使用一个循环打印图案

cod*_*005 4 java loops design-patterns for-loop

我用一个循环打印了这个模式:

*
**
***
****
*****

String s = "";
for (i = 1; i <= n; ++i) {
    s += "*";
    System.out.println(s);
}
Run Code Online (Sandbox Code Playgroud)

现在我想要如何仅使用一个循环打印以下模式.

1)
    *
   * *
  * * *
 * * * *
* * * * *

2)
  * * * * * 
   * * * *
    * * *
     * *
      *

3)
   1 2 3 4 5
   1 2 3 4
   1 2 3 
   1 2
   1
Run Code Online (Sandbox Code Playgroud)

和其他类似的模式只使用一个循环,我已经完成了所有使用多个循环.

Pet*_*rey 6

我想要优化.两个循环的时间复杂度将是O(n ^ 2),而对于仅一个循环,它将是O(n).并且O(n)<O(n ^ 2).

您意识到99.999%的时间将用于更新控制台.如果你想节省时间,不要写任何东西.通过比较,循环所花费的时间是微不足道的.

BTW你产生的恒星数量是O(N ^ 2)所以无论你使用1,2或3个循环,时间复杂度都是O(N ^ 2).

  • 你需要产生N ^ 2个星,所以一个循环必须迭代N ^ 2次.如果使用三个循环,它仍然是O(N ^ 2)O不仅仅是计算循环次数的问题.;) (3认同)