mirror of
https://github.com/krahets/hello-algo.git
synced 2025-11-03 05:27:55 +08:00
Merge branch 'master' of github.com:Cathay-Chen/hello-algo
This commit is contained in:
@ -79,16 +79,19 @@ func (l *MyList) insert(num, index int) {
|
||||
}
|
||||
|
||||
/* 删除元素 */
|
||||
func (l *MyList) remove(index int) {
|
||||
func (l *MyList) remove(index int) int {
|
||||
if index >= l.numsSize {
|
||||
panic("索引越界")
|
||||
}
|
||||
num := l.nums[index]
|
||||
// 索引 i 之后的元素都向前移动一位
|
||||
for j := index; j < l.numsSize-1; j++ {
|
||||
l.nums[j] = l.nums[j+1]
|
||||
}
|
||||
// 更新元素数量
|
||||
l.numsSize--
|
||||
// 返回被删除元素
|
||||
return num
|
||||
}
|
||||
|
||||
/* 列表扩容 */
|
||||
@ -103,4 +106,4 @@ func (l *MyList) extendCapacity() {
|
||||
func (l *MyList) toArray() []int {
|
||||
// 仅转换有效长度范围内的列表元素
|
||||
return l.nums[:l.numsSize]
|
||||
}
|
||||
}
|
||||
|
||||
@ -42,7 +42,7 @@ func printTree(root *TreeNode) {
|
||||
printTree(root.right)
|
||||
}
|
||||
|
||||
/* 函数(或称方法)*/
|
||||
/* 函数 */
|
||||
func function() int {
|
||||
// do something...
|
||||
return 0
|
||||
|
||||
@ -21,15 +21,15 @@ func merge(nums []int, left, mid, right int) {
|
||||
i, j := left_start, right_start
|
||||
// 通过覆盖原数组 nums 来合并左子数组和右子数组
|
||||
for k := left; k <= right; k++ {
|
||||
// 若 “左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
||||
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
||||
if i > left_end {
|
||||
nums[k] = tmp[j]
|
||||
j++
|
||||
// 否则,若 “右子数组已全部合并完” 或 “左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
||||
// 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
||||
} else if j > right_end || tmp[i] <= tmp[j] {
|
||||
nums[k] = tmp[i]
|
||||
i++
|
||||
// 否则,若 “左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
||||
// 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
||||
} else {
|
||||
nums[k] = tmp[j]
|
||||
j++
|
||||
|
||||
Reference in New Issue
Block a user