zoukankan      html  css  js  c++  java
  • Day 11

    第16题:

    给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。来源:力扣(LeetCode)

    1、和之前的15题一样,也可以用暴力解法将结果输出,其中用户绝对值来计算target和三数之和的差距,依次求出最接近的。

      

    2、昨天求的第15题也用了双指针法,这道题非常相近,也可以先枚举一个数,然后计算另两个数的和与target-nums[i]之间的差距;

      当然,在这之前需要将数组排序好,可以减少一些筛选步骤;

      当三数之和大于target时,k前移;

      三数之和小于target时,j前移;

      可得出结果。

      

    第1025题:

    爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。

    最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作:

    选出任一 x,满足 0 < x < N 且 N % x == 0 。
    用 N - x 替换黑板上的数字 N 。
    如果玩家无法执行这些操作,就会输掉游戏。

    只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 false。假设两个玩家都以最佳状态参与游戏。来源:力扣(LeetCode)

    1、开始想到奇偶来判断两人之间谁输谁赢,

      动态规划:定义一个数组来存储当N为i时他的Boolean值,比如N=1时,肯定是false,N=2时,肯定是true;

      就将dp[1]和dp[2]设为false和true,然后去求当N等于3时,他的Boolean值;

      在判断N等于后面的值时,可以利用之前求出的dp[N]的值,如当求dp[3]的时候,它一开始只能-1,所以得到2,而dp[2]为true,就可以得出dp[3]=true;

      这样就可以得出两者谁赢的结果了。

      

  • 相关阅读:
    linux tomcat 突然验证码出不来
    使用open live writer客户端写博客
    创建自己的maven模板
    Dynamic Web Module 3.0 requires Java 1.6 or newer
    win10 操作配置备忘
    Maven使用
    ORA-12514: TNS:listener does not currently know of service …
    PlantUML——4.实例演示1
    C语言基础(一)
    Linux系统挂载FAT32的U盘
  • 原文地址:https://www.cnblogs.com/liang-yi-/p/13196973.html
Copyright © 2011-2022 走看看