代码随想录算法训练营29期|day 7 任务以及具体安排

  •  454.四数相加II 
  • 代码随想录算法训练营29期|day 7 任务以及具体安排_第1张图片
  • 代码随想录算法训练营29期|day 7 任务以及具体安排_第2张图片
  • 关键是map.getOrDefault的运用,hashmap.getOrDefault(Object key, V defaultValue)
  • getOrDefault() 方法获取指定 key 对应对 value,如果找不到 key ,则返回设置的默认值。
  •  383. 赎金信 
  • 代码随想录算法训练营29期|day 7 任务以及具体安排_第3张图片
  • 代码随想录算法训练营29期|day 7 任务以及具体安排_第4张图片
  • 切记如果数组如果<0才return false
  •  15. 三数之和 
  • 代码随想录算法训练营29期|day 7 任务以及具体安排_第5张图片代码随想录算法训练营29期|day 7 任务以及具体安排_第6张图片
  • 三数之和用双指针法,用map去重困难,要特别注意去重的条件,要去重a和去重b、c,去重a要注意使a>0,去重bc,要注意left > right
  •  18. 四数之和 
  • 代码随想录算法训练营29期|day 7 任务以及具体安排_第7张图片代码随想录算法训练营29期|day 7 任务以及具体安排_第8张图片
  • if (nums[i] > 0 && nums[i] > target) {
                    return result;
                }
    注意:

 这个代码是对nums[i]去重的,要切记nums[i] > 0;比如nums[i] = -3,target=-5,显然还是可以继续向下进行的。

if (j > i + 1 && nums[j - 1] == nums[j]) {  // 对nums[j]去重
                    continue;
                }

这儿j大于的是i+1;不能是0。

双指针法要注意剪枝和去重!!!!! 

 

你可能感兴趣的:(算法,数据结构)