zoukankan      html  css  js  c++  java
  • 算法

    1.

    给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。

    注意:答案中不可以包含重复的三元组。

    例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],

    满足要求的三元组集合为:
    [
    [-1, 0, 1],
    [-1, -1, 2]
    ]

    function threeSum($nums) {

    $len = count($nums);
    sort($nums);
    $n=[];
    for($i=0;$i<$len;$i++){
    if($nums[$i]>0){
    return $n;

    }

    if($i>0 && ($nums[$i]==$nums[$i-1])){
    continue;
    }
    $l = $i+1;
    $r =$len-1;

    while ($l<$r) {
    if ($nums[$i] + $nums[$l] + $nums[$r] == 0) {
    if(!in_array([$nums[$i],$nums[$l],$nums[$r]],$n)){
    array_push($n,[$nums[$i],$nums[$l],$nums[$r]]);
    }
    while ($l< $r && ($l == $l + 1)) {
    $l++;
    }
    while ($l<$r && ($r == $r-1)){
    $r--;
    }
    $l++;
    $r--;
    }elseif($nums[$i]+$nums[$l]+$nums[$r]>0){
    $r--;

    }else{
    $l++;
    }


    }

    }
    return $n;
    }
     
    2.

    给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。

    示例:

    输入: [1,2,3,4]
    输出: [24,12,8,6]

    function productExceptSelf($nums) {

           $len = count($nums);

           $res =[];
           $j = 1;
           for($i=0;$i<$len;$i++){
               $res[$i] = $j;
               $j = $j*$nums[$i];
           }
           $j = 1;
           for($i=$len-1;$i>=0;$i--){
               $res[$i]*= $j;
               $j*=$nums[$i];

           }
            return $res;
        }
     
  • 相关阅读:
    hadoop 2.7 添加或删除datanode节点
    hadoop HA集群的安装
    Linux-PAM认证
    [Notice]博客地址转移 vitostack.com
    WPF 自定义 MessageBox (相对完善版 v1.0.0.6)
    python2.7 倒计时
    Hadoop Streaming框架使用(二)
    Hadoop错误码速查
    Hadoop Streaming框架使用(一)
    python清空列表的方法
  • 原文地址:https://www.cnblogs.com/wxc1/p/12092676.html
Copyright © 2011-2022 走看看