題目描述:
給你乙個整數 n ,如果你可以將 n 表示成若干個不同的三的冪之和,請你返回 true ,否則請返回 false 。
對於乙個整數 y ,如果存在整數 x 滿足 y == 3x ,我們稱這個整數 y 是三的冪。
示例 1:
輸入:n = 12
輸出:true
解釋:12 = 31 + 32
示例 2:
輸入:n = 91
輸出:true
解釋:91 = 30 + 32 + 34
示例 3:
輸入n = 21
輸出:false
1 <= n <= 107
方法1:
(1)先將可能組成給定的n的元素計算出來,按照公升序儲存到陣列中;
(2)然後對該陣列進行反向遍歷,找出該n的可能的組成;
(3)反向遍歷時,若是n大於某個元素,則該元素一定是n的組成,因為該元素前面的所有元素相加,也小於該元素;
class
solution
for(
int i=nums.
size()
-1;i>=
0;i--)}
return n==0;
}};
go語言實現
func
checkpowersofthree
(n int
)bool
for i:=
len(nums)-1
;i>=
0;i--
}return n==
0}
方法2:
主要思路:
(1)將該數作為3進製進行判斷,則不能出現某個位上是2的情形;
class
solution
}return
true;}
};
go語言實現
func
checkpowersofthree
(n int
)bool
}return
true
}
判斷乙個數字是否是回文
最近碰到乙個題目,其中一步判斷數字是否為回文 由於題目要求是最短時間實現,不要考慮實現本身的效率 1如果直接去實現,就是比較數字的最高位值和最低位,然後再。public boolean isp int x if x temp bit bit為數值位數 int temp1,temp2 for int ...
判斷乙個數字是否是回文數
判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋 從右向左...
判斷乙個數字是否是回文數
判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。看到這個題目最先想到的就是將這個整形數字轉化成字元陣列,然後對這個字元陣列進行遍歷,這種思路當然是可以的,但是時間複雜度較高,還要引入乙個陣列,空間複雜度較高。第二個想法是將數字本身反轉,然後將反轉後的數字與原始...