1、求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷陳述句(A?B:C)。
------------使用遞回的思路。
uj5u.com熱心網友回復:
2、 撰寫一個函式,不用臨時變數,直接交換numbers = [a, b]中a與b的值。巧用異或。
a = a ^b
b = a ^ b (即 a ^ b ^ b = a)
a = a^b (即a ^ b ^ a = b)
uj5u.com熱心網友回復:
遞回怎么可能不用條件判斷陳述句 ?那如何判斷何時結束遞回?通常遞回函式是這么寫的:
int sum(int n)
{
static int x=0;
if(n==1) return x+1;
x+=n;
return sum(n-1);
}
uj5u.com熱心網友回復:
利用短路特性。參考一種解題思路
int sumNums(int n){
int sum = n;
n && (sum += sumNums(n-1));
return sum;
}
n && (sum += sumNums(n-1));當判斷n > 0 且(sum > 0)那么就執行sum += sumNums(n-1)繼續遞回,相當于if陳述句if(n > 0) sum += sumNums(n-1),如果n < 0,那么就不再繼續判斷sume的值,而是回傳,相當于else return sum
作者:shi-qi-chan-yi-shao-nian
鏈接:https://leetcode-cn.com/problems/qiu-12n-lcof/solution/cdi-gui-de-jian-dan-xie-fa-bu-yong-cheng-chu-fa-if/
來源:力扣(LeetCode)
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
作者:shi-qi-chan-yi-shao-nian
鏈接:https://leetcode-cn.com/problems/qiu-12n-lcof/solution/cdi-gui-de-jian-dan-xie-fa-bu-yong-cheng-chu-fa-if/
來源:力扣(LeetCode)
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
uj5u.com熱心網友回復:
在二維陣列grid中,grid[i][j]代表位于某處的建筑物的高度。 我們被允許增加任何數量(不同建筑物的數量可能不同)的建筑物的高度。 高度 0 也被認為是建筑物。最后,從新陣列的所有四個方向(即頂部,底部,左側和右側)觀看的“天際線”必須與原始陣列的天際線相同。 城市的天際線是從遠處觀看時,由所有建筑物形成的矩形的外部輪廓。 請看下面的例子。
建筑物高度可以增加的最大總和是多少?
例子:
輸入: grid = [[3,0,8,4],[2,4,5,7],[9,2,6,3],[0,3,1,0]]
輸出: 35
解釋:
The grid is:
[ [3, 0, 8, 4],
[2, 4, 5, 7],
[9, 2, 6, 3],
[0, 3, 1, 0] ]
從陣列豎直方向(即頂部,底部)看“天際線”是:[9, 4, 8, 7]
從水平水平方向(即左側,右側)看“天際線”是:[8, 7, 9, 3]
在不影響天際線的情況下對建筑物進行增高后,新陣列如下:
gridNew = [ [8, 4, 8, 7],
[7, 4, 7, 7],
[9, 4, 8, 7],
[3, 3, 3, 3] ]
說明:
1 < grid.length = grid[0].length <= 50。
grid[i][j] 的高度范圍是: [0, 100]。
一座建筑物占據一個grid[i][j]:換言之,它們是 1 x 1 x grid[i][j] 的長方體。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/max-increase-to-keep-city-skyline
著作權歸領扣網路所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
計算出每行的最大值和每列的最大值,遍歷時,每一個建筑物增加到的最大高度為該元素行天際線與列天際線高度的較小值。
時間復雜度 O(n2),空間復雜度(O(N))
uj5u.com熱心網友回復:
無重復字串的排列組合。撰寫一種方法,計算某字串的所有排列組合,字串每個字符均不相同。示例1:
輸入:S = "qwe"
輸出:["qwe", "qew", "wqe", "weq", "ewq", "eqw"]
示例2:
輸入:S = "ab"
輸出:["ab", "ba"]
提示:
字符都是英文字母。
字串長度在[1, 9]之間。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/permutation-i-lcci
著作權歸領扣網路所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
使用回溯法
uj5u.com熱心網友回復:
樓主是來考人的?看題目只是理解為學生作業,卻原來是要玩一些奇技淫巧。樓主舉的短路特性,雖然在C++可行,但別的沒有短路設計的語言是行不通的。
uj5u.com熱心網友回復:
這是基礎語言特性,60、70年代的語言都支持轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/14235.html
標籤:基礎類
