日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 754. 到达终点数字(数学推理)

發布時間:2024/7/5 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 754. 到达终点数字(数学推理) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 題目

在一根無限長的數軸上,你站在0的位置。終點在target的位置。

每次你可以選擇向左或向右移動。第 n 次移動(從 1 開始),走 n 步。

返回到達終點需要的最小移動次數。

示例 1: 輸入: target = 3 輸出: 2 解釋: 第一次移動,從 01 。 第二次移動,從 13 。示例 2: 輸入: target = 2 輸出: 3 解釋: 第一次移動,從 01 。 第二次移動,從 1-1 。 第三次移動,從 -12

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/reach-a-number
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

  • 正號數字之和為p, 負號數字之和為n,數組之和為s
  • p+n=sp + n = sp+n=s
  • 我們走的有效路程為 p?n=targetp - n = targetp?n=target
  • 兩式相減 s?target=2?ns - target = 2 * ns?target=2?n
  • 可見 s?targets - targets?target 一定為偶數,且 s?target=2?n>=0s - target = 2 * n >= 0s?target=2?n>=0
  • 由等差數列公式有 s=i?(i+1)/2s = i *(i + 1) /2s=i?(i+1)/2
  • 求最小的 iii, 使得 i?(i+1)/2?targeti *(i + 1) /2 - targeti?(i+1)/2?target 為 偶數 且 >=0
class Solution { public:int reachNumber(int target) {int i = 1;target = abs(target);int x = (i*i+i)/2-target;while(x < 0 || x%2 == 1){++i;x = (i*i+i)/2-target;}return i;} };

總結

以上是生活随笔為你收集整理的LeetCode 754. 到达终点数字(数学推理)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。