面試題:連續子陣列的最大和
同leetcode 53. maximum subarray:
題目:輸入乙個整型陣列,陣列裡有整數也有負數。
陣列中的乙個或連續多個整數組成乙個子陣列。
求所有子陣列的和的最大值。
要求時間複雜度為o(n)
思路:※有時間複雜度要求,所以如果用1—陣列長度的子陣列長度來遍歷則超過了o(n)
從第二個數開始,第乙個數標記為當前和,如果第二個數大於【和+本身】,則更新當前和為【本身】,否則當前和為【和+本身】
依次遍歷到陣列結尾
public class q42 ;
system.out.println(maxsub(list)); }
public static int maxsub(int list)
int sum = list[0];
int loc = 1;
int max = list[0];
while(loclist[loc]+sum) else
if(sum>max)
loc++;
} return max;
}}
劍指offer第二版 面試題6(java)
面試題6 從尾到頭列印鍊錶 題目 輸入乙個鍊錶的頭結點,從尾到頭反過來列印出每個結點的值 鍊錶的結點定義如下 public class listnode 注意 面試中,如果打算修改輸入的資料,最好先問好是否資料是允許修改的 思路 1.遍歷順序從頭到尾,列印順序從尾到頭,第乙個結點最開始被訪問,但是最...
劍指offer第二版 面試題8 java
題目描述 給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標 分析 情況 一 有右子樹,這時只需要把其右孩子作為下乙個遍歷的 並不是要找的 節點,然後沿著該節點的左子樹 如果有的話 出發,直到遇到葉子節點,那麼該葉子節...
劍指offer第二版 面試題9(java)
面試題9 用兩個棧實現佇列 題目描述 方法 兩個棧 stack1 stack2 插入時,直接放入stack1 刪除時,直接彈出pop2中的物件 如果pop2為空,則先將pop1中的物件放入stack2中,再從stack2裡pop第乙個 如 依次放入stack1中1 2 3,在彈出並放入stack2中...