File tree Expand file tree Collapse file tree 2 files changed +18
-38
lines changed Expand file tree Collapse file tree 2 files changed +18
-38
lines changed Original file line number Diff line number Diff line change @@ -130,57 +130,37 @@ Java:
130130``` Java
131131class Solution {
132132 public int [][] generateMatrix (int n ) {
133+ int loop = 0 ; // 控制循环次数
133134 int [][] res = new int [n][n];
135+ int start = 0 ; // 每次循环的开始点(start, start)
136+ int count = 1 ; // 定义填充数字
137+ int i, j;
134138
135- // 循环次数
136- int loop = n / 2 ;
137-
138- // 定义每次循环起始位置
139- int startX = 0 ;
140- int startY = 0 ;
141-
142- // 定义偏移量
143- int offset = 1 ;
144-
145- // 定义填充数字
146- int count = 1 ;
147-
148- // 定义中间位置
149- int mid = n / 2 ;
150- while (loop > 0 ) {
151- int i = startX;
152- int j = startY;
153-
139+ while (loop++ < n / 2 ) { // 判断边界后,loop从1开始
154140 // 模拟上侧从左到右
155- for (; j< startY + n - offset; ++ j ) {
156- res[startX ][j] = count++ ;
141+ for (j = start ; j < n - loop; j ++ ) {
142+ res[start ][j] = count++ ;
157143 }
158144
159145 // 模拟右侧从上到下
160- for (; i< startX + n - offset; ++ i ) {
146+ for (i = start ; i < n - loop; i ++ ) {
161147 res[i][j] = count++ ;
162148 }
163149
164150 // 模拟下侧从右到左
165- for (; j > startY ; j-- ) {
151+ for (; j >= loop ; j-- ) {
166152 res[i][j] = count++ ;
167153 }
168154
169155 // 模拟左侧从下到上
170- for (; i > startX ; i-- ) {
156+ for (; i >= loop ; i-- ) {
171157 res[i][j] = count++ ;
172158 }
173-
174- loop-- ;
175-
176- startX += 1 ;
177- startY += 1 ;
178-
179- offset += 2 ;
159+ start++ ;
180160 }
181161
182162 if (n % 2 == 1 ) {
183- res[mid][mid ] = count;
163+ res[start][start ] = count;
184164 }
185165
186166 return res;
Original file line number Diff line number Diff line change @@ -136,19 +136,19 @@ java:
136136class Solution {
137137 public int evalRPN(String[] tokens) {
138138 Deque<Integer> stack = new LinkedList();
139- for (int i = 0; i < tokens.length; ++i ) {
140- if ("+".equals(tokens[i] )) { // leetcode 内置jdk的问题,不能使用==判断字符串是否相等
139+ for (String s : tokens) {
140+ if ("+".equals(s )) { // leetcode 内置jdk的问题,不能使用==判断字符串是否相等
141141 stack.push(stack.pop() + stack.pop()); // 注意 - 和/ 需要特殊处理
142- } else if ("-".equals(tokens[i] )) {
142+ } else if ("-".equals(s )) {
143143 stack.push(-stack.pop() + stack.pop());
144- } else if ("*".equals(tokens[i] )) {
144+ } else if ("*".equals(s )) {
145145 stack.push(stack.pop() * stack.pop());
146- } else if ("/".equals(tokens[i] )) {
146+ } else if ("/".equals(s )) {
147147 int temp1 = stack.pop();
148148 int temp2 = stack.pop();
149149 stack.push(temp2 / temp1);
150150 } else {
151- stack.push(Integer.valueOf(tokens[i] ));
151+ stack.push(Integer.valueOf(s ));
152152 }
153153 }
154154 return stack.pop();
You can’t perform that action at this time.
0 commit comments