leetCode第28題和第35題———實現 strStr,搜索插入位置

1.leetCode第28題 實現 strStr
需求:
https://leetcode-cn.com/probl...算法

給你兩個字符串 haystack 和 needle ,請你在 haystack 字符串中找出 needle 字符串出現的第一個位置(下標從 0 開始)。若是不存在,則返回  -1
示例 1:
輸入:haystack = "hello", needle = "ll"
輸出:2

示例 2:
輸入:haystack = "aaaaa", needle = "bba"
輸出:-1

示例 3:
輸入:haystack = "", needle = ""
輸出:0
1 看上面的例子首先想到的是使用indexOf方法
function print(haystack, needle) {
    return haystack.indexOf(needle)
};
2 本身實現一個indexOf方法
function print(haystack, needle) {
    let reg = new RegExp(needle, "g");
    let matchResult = reg.exec(haystack);
    return matchResult ? matchResult["index"] : -1;
  }

2 leetCode第35題 搜索插入位置

https://leetcode-cn.com/probl...segmentfault

給定一個排序數組和一個目標值,在數組中找到目標值,並返回其索引。若是目標值不存在於數組中,返回它將會被按順序插入的位置。
請必須使用時間複雜度爲 O(log n) 的算法。
示例 1:
輸入: nums = [1,3,5,6], target = 5
輸出: 2

示例 2:
輸入: nums = [1,3,5,6], target = 2
輸出: 1

示例 3:
輸入: nums = [1,3,5,6], target = 7
輸出: 4

示例 4:
輸入: nums = [1,3,5,6], target = 0
輸出: 0

示例 5:
輸入: nums = [1], target = 0
輸出: 0
function print(nums, target) {
    let index = nums.indexOf(target);
    if (index > -1) return index;
    for (let i = nums.length; i >= 0; i--) {
      if (nums[i] < target) {
        nums.splice(i+1, 0, target);
        index=i+1
        break;
      }
      if(i==0){
        index=0
        nums.unshift(target)
      }
    }
   return index
  }
相關文章
相關標籤/搜索