20 5 9 LC(陣列 鍊錶)

2022-05-03 21:30:15 字數 1101 閱讀 9242

實現 int sqrt(int x) 函式。

計算並返回 x 的平方根,其中 x 是非負整數。

由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。

思路牛頓迭代 x=(x+a/x)

二分的初始區間取0-x/2,因為輸入的x是整數。

牛頓迭代

class solution 

double sqrts(double x)

}

二分法
class solution 

}max[i]=t+1;

ans=math.max(ans,max[i]);

}return ans;

}}

dp
class solution else

}return dp[n];

}}

遞迴法
class solution 

listnode mergesort(listnode head)

listnode head2=slow.next;

slow.next=null;

listnode left=mergesort(head);

listnode right=mergesort(head2);

return merge(left,right);

}listnode merge(listnode l1,listnode l2)

listnode head2=slow.next;

slow.next=null;

listnode l1=sortlist(head);

listnode l2=sortlist(head2);

if(l1==null||l2==null)return (l1==null)?l2:l1;

listnode pre=new listnode(0);

listnode cur=pre;

while(l1!=null&&l2!=null)else

}cur.next=(l1==null)?l2:l1;

return pre.next;

}}

(鍊錶)LC環形鍊錶

使用雜湊表記錄已經走過節點,如果遍歷到已經訪問的,則說明有環 public boolean hascycle listnode head return false 對於判斷鍊錶 陣列是否有環,可以使用floyd判環演算法 龜兔賽跑演算法 使用快慢指標,快指標每次走兩步,慢指標每次走一步,如果快指標走...

LC 交換鍊錶節點

將給定的鍊錶中每兩個相鄰的節點交換一次,返回鍊錶的頭指標 例如,給出1 2 3 4,你應該返回鍊錶2 1 4 3。你給出的演算法只能使用常量級的空間。你不能修改列表中的值,只能修改節點本身。struct listnode class solution listnode phead newlistno...

lc 刪除鍊錶中的節點

題目很簡單!就是理解題意有點,emmmmm.就想著沒傳入head鍊錶怎麼個刪除法,都不能知道被刪除元素前面的指標,所以就不能通過更改next指標來刪除。只能通過把被刪除節點後面的元素往前移動,並刪除最後乙個節點即可。definition for singly linked list.struct l...