Is this code time efficient?

package Patterns;

import java.util.Scanner;

public class Pattern_21 {

public static void main(String[] args) {
	Scanner scn = new Scanner(System.in);
	int n = scn.nextInt();
	int row = 1;
	int nsp = n + 2;
	int nst = 1;
	int p = 1;
	while (row <= n) {
		for (int cst = 1; cst <= nst; cst++) {
			System.out.print("*");
		}
		for (int csp = 1; csp <= nsp; csp++) {
			System.out.print(" ");

		}
		for (int o = 1; o <= p; o++) {
			System.out.print("*");
		}
		System.out.println("");
		if (row == n - 1) {

			nst++;
			nsp = nsp - 2;

		}

		else {
			nst++;
			nsp = nsp - 2;

			p++;
		}
		row++;
	}
}

}

Yes, your code is time efficient since your code is iterating a single time for each character that it is printing, so it has linear time complexity.