LeetCode Javascript実現258.Add Digits 104.Maximum Depth of Binary Tree 226.Invert Binary Tree
4029 ワード
258.Add Digits
Digit root数本の問題
1.任意の数に9を加えた数字の根は、それ自体です.(特殊状況num=0)
小学校で足し算を習う時、一つの数字に9を加えると、10桁を1とし、皆さんは1を減らすことが分かります.したがって、10人のプラスのビットと同じです.もし进位があるならば、つまり10位の上で9で、进位の后で10位は0になって、百位は1をプラスすることができて、道理は1つの桁と9をプラスするのが同じです.
2.9どの数字に乗っても、数字の根は9です.
同じ小学校の時に掛け算をする時、私達は一桁の数を計算して9に乗る時、10本の指を並べて、何本かに乗って第数本の指を曲げて、前後の指の個数はその結果です.その数字の根はいつも10-1=9です.複数のビット数の化は、各ビットの数字を分割することができます.
104.Maximum Depth of Binary Tree
この問題は二叉樹の深さの計算を調べて、遍歴を使って完成して、下の階のreturn 0から絶えず+1から初期の位置まで計算を完成します.
226.Invert Binary Tree
テーマの中のこの言葉を説明して笑いました. Google:90%of our enginers use the software you wrote、but you can't invert a binary tree on a white board so fuck off.
【注】この問題は上の二叉の深さの問題と似ています.すぐにできます.何も言いません.
Digit root数本の問題
/**
* @param {number} num
* @return {number}
*/
var addDigits = function(num) {
var b = (num-1) % 9 + 1 ;
return b;
};
// num -1 +1; : num 9 ,0+9 0 。
性質説明1.任意の数に9を加えた数字の根は、それ自体です.(特殊状況num=0)
小学校で足し算を習う時、一つの数字に9を加えると、10桁を1とし、皆さんは1を減らすことが分かります.したがって、10人のプラスのビットと同じです.もし进位があるならば、つまり10位の上で9で、进位の后で10位は0になって、百位は1をプラスすることができて、道理は1つの桁と9をプラスするのが同じです.
2.9どの数字に乗っても、数字の根は9です.
同じ小学校の時に掛け算をする時、私達は一桁の数を計算して9に乗る時、10本の指を並べて、何本かに乗って第数本の指を曲げて、前後の指の個数はその結果です.その数字の根はいつも10-1=9です.複数のビット数の化は、各ビットの数字を分割することができます.
104.Maximum Depth of Binary Tree
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {number}
*/
var maxDepth = function(root) {
if(root===null){
return 0;
}
var le = maxDepth(root.left);
var ri = maxDepth(root.right);
return 1+Math.max(le,ri);
};
【注】custom testの中のbinary tree visualizerは配列を使って二叉樹を生成します.例えば、[1,2,3,4,5]この問題は二叉樹の深さの計算を調べて、遍歴を使って完成して、下の階のreturn 0から絶えず+1から初期の位置まで計算を完成します.
226.Invert Binary Tree
テーマの中のこの言葉を説明して笑いました. Google:90%of our enginers use the software you wrote、but you can't invert a binary tree on a white board so fuck off.
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {TreeNode}
*/
var invertTree = function(root) {
if(root===null){
return root
}
var tem = root.left;
root.left = root.right;
root.right = tem;
invertTree(root.left);
invertTree(root.right);
return root
};
【注】この問題は上の二叉の深さの問題と似ています.すぐにできます.何も言いません.