https://leetcode-cn.com/contest/weekly-contest-97/problems/uncommon-words-from-two-sentences/

class Solution {
public String[] uncommonFromSentences(String A, String B) {
List<String> lsA = new ArrayList<String>();
List<String> lsB = new ArrayList<String>();
List<String> res = new ArrayList<String>();
for(int i=0;i<A.length();i++){
char[] tempC= new char[100];
int cnt = 0;
while(A.charAt(i) != ' ') {
tempC[cnt++] = A.charAt(i);
i++;
if(i==A.length())
break;
}
lsA.add(new String(tempC, 0, cnt));
if(i==A.length()) break;
}
for(int i=0;i<B.length();i++){
char[] tempC= new char[100];
int cnt = 0;
while(B.charAt(i) != ' ') {
tempC[cnt++] = B.charAt(i);
i++;
if(i==B.length()) break;
}
lsB.add(new String(tempC, 0, cnt));
if(i==B.length()) break;
}
for(int i=0;i<lsA.size();i++){
int count = Collections.frequency(lsA, lsA.get(i));
if(count == 1) {
int cnt = Collections.frequency(lsB, lsA.get(i));
if(cnt == 0){
res.add(lsA.get(i));
}
}
}
for(int i=0;i<lsB.size();i++){
int count = Collections.frequency(lsB, lsB.get(i));
if(count == 1) {
int cnt = Collections.frequency(lsA, lsB.get(i));
if(cnt == 0){
res.add(lsB.get(i));
}
}
}
String[] result= new String[res.size()];
int i =0 ;
for(String it : res) {
result[i++] = it;
}
return result;
}
}

https://leetcode-cn.com/contest/weekly-contest-97/problems/spiral-matrix-iii/

class Solution
{
//首先定义方向数组
final int[][] dir = new int[][] {{0,1},{1,0},{0,-1},{-1,0}};
//再定义另一个方法来检测是否超出边界,如果没有超出,则可作为结果储存
boolean valid(int r0, int c0, int r, int c)
{
if(r0>=0&&r0<r&&c0>=0&&c0<c)
return true;
return false;
}
int[][] listtoarray(List<ArrayList<Integer>> res, int R, int C)
{
int[][] ret = new int[R*C][2];
for(int i=0; i<res.size(); i++)
{
for(int j=0; j<res.get(i).size(); j++)
{
ret[i][j] = res.get(i).get(j);
}
}
return ret;
}
public int[][] spiralMatrixIII(int R, int C, int r0, int c0)
{
List<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();
res.add(new ArrayList<Integer>(Arrays.asList(r0,c0)));
int flag =0;
for(int i=1;; i++)
{
for(int j=0; j<i; j++)
{
r0+=dir[flag][0];
c0+=dir[flag][1];
if(valid(r0, c0, R, C)) res.add(new ArrayList<Integer>(Arrays.asList(r0,c0)));
if(res.size()==R*C) return listtoarray(res,R,C);
}
flag = (flag+1)%4;
for(int j=0; j<i; j++)
{
r0+=dir[flag][0];
c0+=dir[flag][1];
if(valid(r0, c0, R, C)) res.add(new ArrayList<Integer>(Arrays.asList(r0,c0)));
if(res.size()==R*C) return listtoarray(res,R,C);
}
flag = (flag+1)%4;
}
}
}