leetcode-搜索插入位置

August 20, 2020
leetcode c

点击查看 leetcode 题目地址

我的实现:

int searchInsert(int* nums, int numsSize, int target){
    int rangeL = 0, rangeR = numsSize - 1;
    if (target > nums[numsSize - 1]) return numsSize;
	if (target == nums[numsSize - 1]) return numsSize - 1;
    if (target <= nums[0]) return 0;
    while (1)
    {
		if (rangeR == rangeL + 1) return rangeR;
        int middle = rangeL + (rangeR - rangeL) / 2;
        if (nums[middle] == target) return middle;
        else if (nums[middle] > target) rangeR = middle;
        else rangeL = middle;
    }
    return -1;
}

google 后看到了一种 O(n) 的容易理解的编码方式:

int searchInsert(int* nums, int numsSize, int target)
{
	for (int i = 0; i < numsSize; i ++)
	{
		if (nums[i] >= target) return i;
	}
	return numsSize;
}

参考:
leetcode 35. Search Insert Position搜索插入位置(二分查找)

1209. 删除字符串中的所有相邻重复项 II

leetcode php

链表中环的检测

链表 c

移除链表倒数第N个节点

链表 c