leetcode457. 環形數組循環

給定一個含有正整數和負整數的環形數組 nums。 如果某個索引中的數 k 為正數,則向前移動 k 個索引。相反,如果是負數 (-k),則向后移動 k 個索引。因為數組是環形的,所以可以假設最后一個元素的下一個元素是第一個元素,而第一個元素的前一個元素是最后一個元素。

確定 nums 中是否存在循環(或周期)。循環必須在相同的索引處開始和結束并且循環長度 > 1。此外,一個循環中的所有運動都必須沿著同一方向進行。換句話說,一個循環中不能同時包括向前的運動和向后的運動。

示例 1:

輸入:[2,-1,1,2,2]
輸出:true
解釋:存在循環,按索引 0 -> 2 -> 3 -> 0 。循環長度為 3 。

代碼

class Solution {public boolean circularArrayLoop(int[] nums) {int n=nums.length;boolean[] flags=new boolean[n];Set<Integer> set=new HashSet<>();for(int i=0;i<n;i++)//檢查正數{if(nums[i]<0||flags[i]) continue;set.add(i);int pre=i;while (true)//向后移動{int next=(pre+nums[pre])%n;if(nums[next]<0||next==pre||flags[next]){
//因為路徑是唯一的,所以路徑上一旦有不滿足的點,就整條路徑標記起來,再也不用遍歷這些點for(int c:set)flags[c]=true;set.clear();break;}if(set.contains(next)) return true;//可以產生環set.add(next);pre=next;//跳到下一點}}for(int i=0;i<n;i++)//檢查負數{if(nums[i]>0||flags[i]) continue;set.add(i);int pre=i;while (true){int next=(pre+nums[pre])%n;next=next<0?next+n:next;if(nums[next]>0||next==pre||flags[next]){for(int c:set)flags[c]=true;set.clear();break;}if(set.contains(next)) return true;set.add(next);pre=next;}}return false;}
}

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

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

相關文章

Jquery的ajax提交成功后刷新頁面

轉載于:https://www.cnblogs.com/huoxiansudi/p/6646855.html

程序員編程經驗_在沒有實際編程的情況下成為更好的程序員

程序員編程經驗In this talk, Ryan Johnson explains what was for him the invisible step to becoming a better developer.在演講中&#xff0c;瑞安約翰遜(Ryan Johnson)解釋了對他來說&#xff0c;成為更好的開發人員這一無形的步驟。 You can watch the full video on t…

粘貼復制

方法1: 方法二: 方法三: // 第三種 ios 設備和 android設備均正常,但是pc端沒有//定義函數window.Clipboard (function(window, document, navigator) { var textArea, copy; // 判斷是不是ios端 function isOS() { return navigator.userAgent.mat…

leetcode109. 有序鏈表轉換二叉搜索樹(遞歸)

給定一個單鏈表&#xff0c;其中的元素按升序排序&#xff0c;將其轉換為高度平衡的二叉搜索樹。本題中&#xff0c;一個高度平衡二叉樹是指一個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例:給定的有序鏈表&#xff1a; [-10, -3, 0, 5, 9],一個可能的答案是…

mxnet教程

官方教程&#xff0c;講的還行&#xff0c;我用自己的實例講解。自己如何設計網絡&#xff0c;自己的迭代器 1&#xff1a;引入module&#xff1a; import mxnet as mx import numpy as np import cv2 import matplotlib.pyplot as plt import logginglogger logging.getLogge…

web動畫_Web動畫簡介

web動畫by CodeDraken由CodeDraken Web動畫簡介 (An Introduction to Web Animations) In this introduction to web animations article, we will cover basic CSS animations using pseudo-classes, transitions, and transformations.在此Web動畫簡介中&#xff0c;我們將介…

java統計空間占用_JVM —— Java 對象占用空間大小計算

引用類型(reference type&#xff1a; Integer)在 32 位系統上每一個占用 4bytes(即32bit&#xff0c; 才干管理 2^324G 的內存), 在 64 位系統上每一個占用 8bytes(開啟壓縮為 4 bytes)。四. 對齊填充HotSpot 的對齊方式為 8 字節對齊。不足的須要 Padding 填充對齊&#xff0…

源于十年來的點滴積累——《變革中的思索》印行出版

源于歸國十年來的點滴積累, 集結成書的《變革中的思索》&#xff0c;日前由電子工業出版社刊印出版。 這本書共有五個章節&#xff0c;分別是解碼創新、中國智造、管理心得、我和微軟、心靈記憶——前三章偏重技術&#xff0c;更多理性的思考; 后兩章則工作生活中的所見所聞&am…

SpringBoot聲明式事務

目錄 事務的基本特征隔離級別傳播行為Transcation事務的基本特征&#xff08;ACID&#xff09; Atomic&#xff08;原子性&#xff09; 事務中包含的操作被看作一個整體的業務單元&#xff0c;這個業務單元中的操作要么全部成功&#xff0c;要么全部失敗&#xff0c;不會出現部…

leetcode1437. 是否所有 1 都至少相隔 k 個元素

給你一個由若干 0 和 1 組成的數組 nums 以及整數 k。如果所有 1 都至少相隔 k 個元素&#xff0c;則返回 True &#xff1b;否則&#xff0c;返回 False 。 示例 1&#xff1a; 輸入&#xff1a;nums [1,0,0,0,1,0,0,1], k 2 輸出&#xff1a;true 解釋&#xff1a;每個 1 …

數據結構教程網盤鏈接_數據結構101:鏈接列表

數據結構教程網盤鏈接by Kevin Turney凱文特尼(Kevin Turney) Like stacks and queues, Linked Lists are a form of a sequential collection. It does not have to be in order. A Linked list is made up of independent nodes that may contain any type of data. Each no…

多線程之間的通信(等待喚醒機制、Lock 及其它線程的方法)

一、多線程之間的通信。 就是多個線程在操作同一份數據&#xff0c; 但是操作的方法不同。     如&#xff1a; 對于同一個存儲塊&#xff0c;其中有兩個存儲位&#xff1a;name sex&#xff0c; 現有兩個線程&#xff0c;一個向其中存放數據&#xff0c;一個打印其中的數…

Linux iptables 配置詳解

一、配置一個filter表的防火墻 1. 查看本機關于 iptables 的設置情況 # iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) …

06 Nginx

1.檢查linux上是否通過yum安裝了nginx rpm -qi nginx2.解決安裝nginx所依賴包 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel ope…

java編寫安卓程序代碼,安卓:從Android的Java源代碼code創建UML

i am looking for a program that can create automatically an Uml from my Java-Android source code.I have tested ArgoUml, but it does not support Android.Have any one a suggestion?Thanks!解決方案I can second what Tom Morris wrote in the comment above. Even …

leetcode1052. 愛生氣的書店老板(滑動窗口)

今天&#xff0c;書店老板有一家店打算試營業 customers.length 分鐘。每分鐘都有一些顧客&#xff08;customers[i]&#xff09;會進入書店&#xff0c;所有這些顧客都會在那一分鐘結束后離開。 在某些時候&#xff0c;書店老板會生氣。 如果書店老板在第 i 分鐘生氣&#xf…

amazon alexa_在Amazon Alexa上推出freeCodeCamp編碼瑣事測驗

amazon alexaNow you can learn coding concepts hands-free using an Amazon Echo.現在&#xff0c;您可以使用Amazon Echo免提學習編碼概念。 freeCodeCamp.org contributor David Jolliffe created a quiz game with questions on JavaScript, CSS, networking, and comput…

第一類第二類丟失更新

第一類丟失更新 A事務撤銷時&#xff0c;把已經提交的B事務的更新數據覆蓋了。這種錯誤可能造成很嚴重的問題&#xff0c;通過下面的賬戶取款轉賬就可以看出來&#xff1a; 時間 取款事務A 轉賬事務B T1 開始事務 T2 開始事務 T3 查詢賬戶余額為1000元 …

oracle數據字典表與視圖

oracle數據字典表與視圖 數據字典是數據的數據&#xff0c;也就是元數據。描述了數據庫的物理與邏輯存儲與相應的信息。模式中對象的定義信息&#xff0c;安全信息&#xff0c;完整性約束信息&#xff0c;和部分的性能監控信息等。數據字典表 與視圖存儲在system表空間中的。有…

團隊作業——項目Alpha版本發布

---恢復內容開始--- https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/3329 <作業要求的鏈接> Gorious Computer <寫上團隊名稱> 發布項目α版本&#xff0c;對項目…