leetcode486. 預測贏家(動態規劃)

給定一個表示分數的非負整數數組。 玩家1從數組任意一端拿取一個分數,隨后玩家2繼續從剩余數組任意一端拿取分數,然后玩家1拿,……。每次一個玩家只能拿取一個分數,分數被拿取之后不再可取。直到沒有剩余分數可取時游戲結束。最終獲得分數總和最多的玩家獲勝。

給定一個表示分數的數組,預測玩家1是否會成為贏家。你可以假設每個玩家的玩法都會使他的分數最大化。
示例 1:

輸入: [1, 5, 2]
輸出: False
解釋: 一開始,玩家1可以從1和2中進行選擇。
如果他選擇2(或者1),那么玩家2可以從1(或者2)和5中進行選擇。如果玩家2選擇了5,那么玩家1則只剩下1(或者2)可選。
所以,玩家1的最終分數為 1 + 2 = 3,而玩家2為 5。
因此,玩家1永遠不會成為贏家,返回 False。

解題思路

數組含義:dp[i][j]數組nums(i,j)的先手分數和后手分數的最大差
狀態轉移:dp[i][j]= Math.max(nums[i]-dp[i+1][j],nums[j]-dp[i][j-1])
兩種轉移狀態1.先手從左邊拿2.先手從右邊拿

代碼

class Solution {public boolean PredictTheWinner(int[] nums) {int n=nums.length;int[][] dp=new int[n][n];for(int i=n-2;i>=0;i--)for(int j=i+1;j<n;j++)dp[i][j]= Math.max(nums[i]-dp[i+1][j],nums[j]-dp[i][j-1]);return dp[0][n-1]>=0;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394310.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394310.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394310.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

w550官方例程_急!求索愛w550的刷機所需要的所有文件! 全部分送上!

展開全部W550c行貨軟件升級使用國內行貨W550c手機的朋友&#xff0c;將來是可以在62616964757a686964616fe58685e5aeb931333238646330官方網站使用隨機數據線免費升級的&#xff0c;目前W550c的最新版本是R4AB048但是由于目前官方網站還未提供&#xff0c;大家敬請期待。W550c索…

python的xpath用法介紹_python爬蟲之xpath的基本使用詳解

本篇文章主要介紹了python爬蟲之xpath的基本使用詳解&#xff0c;現在分享給大家&#xff0c;也給大家做個參考。一起過來看看吧一、簡介XPath 是一門在 XML 文檔中查找信息的語言。XPath 可用來在 XML 文檔中對元素和屬性進行遍歷。XPath 是 W3C XSLT 標準的主要元素&#xff…

楊波 微服務技術專家_專家稱,這些是最有效的微服務測試策略

楊波 微服務技術專家by Jake Lumetta杰克盧米塔(Jake Lumetta) 專家稱&#xff0c;這些是最有效的微服務測試策略 (These are the most effective microservice testing strategies, according to the experts) Testing microservices is hard. More specifically, end-to-end…

LRU算法實現

LRU是Last Recent Used 縮寫&#xff0c;做為一種緩存算法&#xff0c;將最近較少使用的緩存失效。memcache采用了該算法。如下采用了一種PHP的實現方式。該算法將每次新增的內容&#xff0c;放到緩存頂部&#xff0c;達到緩存極限時&#xff0c;將緩存底部的內容清除。可以通過…

Java中的阻塞隊列-LinkedBlockingQueue(二)

原文地址&#xff1a;http://benjaminwhx.com/2018/05/11/%E3%80%90%E7%BB%86%E8%B0%88Java%E5%B9%B6%E5%8F%91%E3%80%91%E8%B0%88%E8%B0%88LinkedBlockingQueue/ 在集合框架里&#xff0c;想必大家都用過ArrayList和LinkedList&#xff0c;也經常在面試中問到他們之間的區別。…

自動加密企業關鍵業務數據 賽門鐵克推出全新信息保護解決方案

最新推出的Symantec Information Centric Security解決方案&#xff0c;能夠幫助企業隨時隨地對數據進行自動加密、跟蹤和撤銷&#xff0c;提供卓越的可見性和管控力 近日&#xff0c;全球網絡安全領域的領導者賽門鐵克公司宣布推出一款全新的高級信息保護工具 Symantec Inform…

leetcode312. 戳氣球(動態規劃)

有 n 個氣球&#xff0c;編號為0 到 n-1&#xff0c;每個氣球上都標有一個數字&#xff0c;這些數字存在數組 nums 中。 現在要求你戳破所有的氣球。如果你戳破氣球 i &#xff0c;就可以獲得 nums[left] * nums[i] * nums[right] 個硬幣。 這里的 left 和 right 代表和 i 相鄰…

碳鋼腐蝕速率計算公式_鎂合金輪轂螺栓連接的電偶腐蝕行為

環境污染和能源短缺促使日益發達的汽車工業大力推進構件輕量化&#xff0c;鎂合金是最輕的結構材料之一&#xff0c;構件采用鎂合金制造可以在減重的同時不降低結構強度&#xff0c;受到汽車工業的青睞。輪轂作為汽車的主要組成部件&#xff0c;其輕量化是汽車節能減排的有效途…

第七周總結

2019第七周作業 本周作業頭 這個作業屬于那個課程C語言程序設計II這個作業要求在哪里https://edu.cnblogs.com/campus/zswxy/computer-scienceclass1-2018/homework/2939我在這個課程的目標是理解指針數組和地址之前的關系及應用這個作業在那個具體方面幫助我實現目標practice參…

python大綱圖_Python課程大綱

課程大綱被分成6個部分&#xff0c;每個部分又被分解為多個階段&#xff0c; 而每個階段包含了多個Try, Workshop, FactToFace, Apply. 這里只列出部分&#xff0c;和階段&#xff1a;CHAPTER 0 : 預科[可選]Linux使用&#xff0c;常用CMD&#xff0c;服務配置&#xff0c;IDE&…

如何使用Google Authenticator在ASP.NET Core中設置兩因素身份驗證

介紹 (Introduction) In this article, we are going to learn how to perform two-factor authentication in an ASP.NET Core application using the Google Authenticator app.在本文中&#xff0c;我們將學習如何使用Google Authenticator應用程序在ASP.NET Core應用程序中…

280. Wiggle Sort

最后更新 二刷 這個題做得真蠢。上來想的復雜了&#xff0c;想的是quick sort之類的&#xff0c;然后一個一個交換。 實際上直接交換就行。。沒啥特別的。 回頭看一刷也是同樣的思考過程 宿命論啊。。 Time: O(n) Space: O(1) public class Solution {public void wiggleSort(i…

避免人為災難:盤點數據中心里十大愚蠢行為

對于企業運營&#xff0c;數據中心從設計、部署等各個環節都有極其嚴格的規范&#xff0c;保證簡單的“題目”不出錯也需要企業IT管理人員的智慧&#xff0c;在數據中心任何一個小錯誤往往會帶來巨大災難。數據中心從設計、部署、測試、運行、運維等各個環節都不能有任何的疏忽…

python中node.tag的用法_python在ui自動化中的一些常見用法

http://cn.python-requests.org/zh_CN/latest 可以查看requests庫的說明&#xff0c;pprint(res.json(),width30)可以對請求的返回值按照json格式化形式進行打印。常見的content-type 有application/x-www-form-urlencoded、application/json、application/xml。自動化測試操作…

leetcode1039. 多邊形三角剖分的最低得分(動態規劃)

給定 N&#xff0c;想象一個凸 N 邊多邊形&#xff0c;其頂點按順時針順序依次標記為 A[0], A[i], …, A[N-1]。 假設您將多邊形剖分為 N-2 個三角形。對于每個三角形&#xff0c;該三角形的值是頂點標記的乘積&#xff0c;三角剖分的分數是進行三角剖分后所有 N-2 個三角形的…

TRIZ解決問題方法

個人覺的成功是有規律的&#xff0c;那些成功的人士&#xff0c;都有一套處理事情的秘籍。只要我們的思維方式把那些秘籍融會貫通&#xff0c;并快速執行&#xff0c;我們有一天也會成功的。 TRIZ解決問題的5點方法。 1.確定最終目標。 2.列出阻礙因素 3.消除阻礙因素 4.可以利…

windows調用python_windows 快捷調用Python語言

本文主要向大家介紹了windows 快捷調用Python語言&#xff0c;通過具體的內容向大家展示&#xff0c;希望對大家學習Python語言有所幫助。場景1&#xff1a;某云平臺的賬號/或密碼比較長&#xff0c;一旦瀏覽器緩存失效&#xff0c;就要去郵件/文件查找&#xff0c;費時費力場景…

《量化投資:以MATLAB為工具》連載(1)基礎篇-N分鐘學會MATLAB(上)

http://blog.sina.com.cn/s/blog_4cf8aad30102uylf.html 《量化投資&#xff1a;以MATLAB為工具》連載(1)基礎篇-N分鐘學會MATLAB&#xff08;上&#xff09; 《量化投資&#xff1a;以MATLAB為工具》簡介 《量化投資&#xff1a;以MATLAB為工具》是由電子工業出版社&#xff0…

android-開源項目_我如何擺脫對開源的恐懼,并開始了自己的項目-以及如何做到。...

android-開源項目by Linea Brink Andersen通過Linea Brink Andersen 我如何擺脫對開源的恐懼&#xff0c;并開始了自己的項目-以及如何做到。 (How I crushed my fear of open source and started my own project — and how you can, too.) A week ago, I started an Open So…

本題要求實現函數輸出n行數字金字塔。_練習5-3 數字金字塔 (15分)

本題要求實現函數輸出n行數字金字塔。函數接口定義&#xff1a;void pyramid( int n );其中n是用戶傳入的參數&#xff0c;為[1, 9]的正整數。要求函數按照如樣例所示的格式打印出n行數字金字塔。注意每個數字后面跟一個空格。裁判測試程序樣例&#xff1a;#include <stdio.…