本人解法 ~略麻烦

class Solution {
        public String convertToTitle(int n) {
        int flag = 0;
        String str = "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ";
        String[] arr = str.split(" ");
        String str2 = "";
        while(n!=0) {
            n--;//这个是最亮的一点  
            int temp=n%26;
            str2=arr[temp]+str2;
            n=n/26;
        }
        return str2;
    }
}

其他的解法 有点简单~ 不用采用AZ保存在一个数组中

public class Solution {
public String convertToTitle(int n) {
    String res = "";
    while(n != 0) {
        char ch = (char)((n - 1) % 26 + 65);
        n = (n - 1) / 26;
        res = ch + res;
    }
    return res;
}
}
class Solution {
    public String convertToTitle(int n) {
        StringBuilder sb = new StringBuilder();//用一个可变的字符串 节省一点时间
        while(n>0){
            if(n%26==0){
                sb.append('Z');
                n -= 26;
            }else {
                sb.append((char) ('A' + (n % 26) - 1));
            }
            n /= 26;
        }
        return sb.reverse().toString();
    }
}

最牛逼的一行解决

return n == 0 ? "" : convertToTitle(--n / 26) + (char)('A' + (n % 26));