劍指offer刷題

2021-10-06 06:06:47 字數 3002 閱讀 2631

原題鏈結

動態規劃

class

solution

//dp

for(

int i =

1; i <= len1;

++i)

else

if(p[j -1]

=='*'

)else}}

return dp[len1]

[len2];}

};

原題鏈結

數學推導 找規律

class

solution

else

if(n %3==

2)return

(ipow(3

, numsof3))%

1000000007;}

long

long

ipow

(long

long n,

long

long e)

return res;}}

;

原題鏈結

位運算

class

solution

return res;}}

;

class

solution

void

mergesort

(int left,

int right, vector<

int>

& nums, vector<

int>

& tmp)

else

tmp[index++

]= nums[i++];

}while

(i <= mid)

while

(j <= right)

for(

int k = left, pos=

0; k <= right; k++)}

};

class

solution

return pre;}}

;

原題鏈結

思路 快慢指標

/**

* definition for singly-linked list.

* struct listnode

* };

*/class

solution

while

(fast)

return slow;}}

;

原題鏈結

思路 雙指標

class

solution

);int len = nums.

size()

;int p1 =0;

int p2 = len -1;

while

(p1 < p2)

else

if(nums[p1]%2

==1&& nums[p2]%2

==1)else

if(nums[p1]%2

==0&& nums[p2]%2

==0)else

if(nums[p1]%2

==1&& nums[p2]%2

==0)}

return nums;}}

;

原題鏈結

思路:遞迴

class

solution

else

if(l2 ==

nullptr

)else

if(l1-

>val < l2-

>val)

else}}

;

class

solution

void

postorder

(listnode* head)

};

class

solution

bool

recursive

(treenode* a, treenode* b)}}

;

思路:歸併排序

class

solution

void

mergesort

(int left,

int right, vector<

int>

& nums, vector<

int>

& tmp)

else

tmp[index++

]= nums[i++];

}while

(i <= mid)

while

(j <= right)

for(

int k = left, pos=

0; k <= right; k++)}

};

l1 + lc + l2 = l2 + lc + l1

class

solution

return p1;}}

;

class

cqueue

void

(int value)

sta1.

push

(value)

;while

(!sta2.

empty()

)}intdeletehead()

}private

: stack<

int>sta1;

stack<

int>sta2;

};

遞迴會有很多重複計算

class

solution

return dp[n];}

};

劍指offer刷題

面試題6 從尾到頭列印鍊錶 struct listnode class solution reverse res.begin res.end return res 替換空格class solution int newnumstr numstr numspace 2 if newnumstr leng...

劍指offer刷題 2

思路 如果從前往後進行遍歷,那麼每次找到乙個空格,則需要新增兩個位元組來進行替換,我們採用先對字串進行遍歷,查詢字串中的空格的個數,然後對新的字串進行長度的計算,然後從後往前進行替換,每遇到乙個空字元,然後進行替換。class solution int oldnumber 0 int numbers...

劍指offer刷題筆記

給定一顆二叉搜尋樹,請找出其中的第k大的結點。例如,5 3 7 2 4 6 8 中,按結點數值大小順序第三個結點的值為4。struct treenode class solution treenode kthnode treenode proot,int k 非遞迴實現 class solution...