華為OD-2024年E卷-找終點[100分] -- python

問題描述:

給定一個正整數數組,設為nums,最大為100個成員,求從第一個成員開始,正好走到數組最后一個成員,所使用的最少步驟數。要求:

  1. 第一步必須從第一元素開始,且1<=第一步的步長<len/2;(len為數組的長度,需要自行解析)。
  2. 從第二步開始,只能以所在成員的數字走相應的步數,不能多也不能少,如果目標不可達返回-1,只輸出最少的步驟數量。
  3. 只能向數組的尾部走,不能往回走。

輸入描述
由正整數組成的數組,以空格分隔,
數組長度
小于100,請自行解析數據數量。
輸出描述
正整數,表示最少的步數,如果不存在輸出-1
示例1
輸入

7 5 9 4 2 6 8 3 5 4 3 9

輸出

2

說明
第一步:第一個可選步長選擇2,從第一個成員7開始走2步,到達9;第二步:從9開始,經過自身數字9對應的9個成員到最后。

解題思路:

列表模擬:

  1. 遍歷前n/2個元素
  2. 對每個元素,下一跳索引 [i+1] = 索引 [i] + 值 [i]
  3. 判斷是否能剛好到達最后一個元素

循環條件:

  1. 若當前索引 = 數組長度 - 1,則將當前步數加入ans列表
  2. 若當前索引 > 數組長度 - 1,則跳出循環
  3. 否則繼續下一跳

代碼實現:

arr = list(map(int,input().split()))
n = len(arr)
s = int(n/2)
ans = []
for index in range(s):step = 1#記錄次數while index < n:index += arr[index]if index >= n:breakelif index == n-1:ans.append(step+1)step += 1
if len(ans) != 0:ans.sort()print(ans[0])
else:print(-1)

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

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

相關文章

ARINC653分區調度算法的研究與改進

# ARINC653分區調度算法的研究與優化&#xff1a;從單核到多核的實時性保障 ## 1 研究背景與意義 航空電子系統經歷了從**聯合式架構**到**綜合模塊化航空電子**&#xff08;Integrated Modular Avionics, IMA&#xff09;架構的重大演變。在這一演變過程中&#xff0c;ARINC…

Vue-8-前端框架Vue之應用基礎響應式數據和計算屬性

文章目錄 1 響應式數據1.1 ref創建基本類型的響應式數據1.2 reactive創建對象類型的響應式數據1.2.1 汽車示例(對象{})1.2.2 游戲示例(數組[])1.2.3 深層示例1.3 ref創建對象類型的響應式數據1.4 ref對比reactive1.4.1 區別和使用原則1.4.2 reactive重新分配新對象1.4.3 ref重新…

Kotlin - 邊界控制 coerceIn、coerceAtLeast、coerceAtMost

一、概念 當需要對數值進行范圍限制時&#xff0c;通常會用 if() else if() else&#xff0c;這樣會寫很多判斷&#xff0c;使用 coerceXXX() 函數來簡化&#xff0c;適用于實現了 Comparable 接口的對象。 coerceIn() public fun <T : Comparable<T>> T.coerceIn(…

Day02_數據結構(手寫)

01.畫圖 02.按位置查找返回元素的值 //11.按位置查找后返回元素的值 int find_pos(node_p H,int pos) { if(HNULL){return -1;} if(pos<0){ …

1.2 人工智能的分類

人工智能的類型 ANI 無需明確設計即可構建或訓練&#xff0c;以執行特定任務或解決特定問題的智能系統。也被稱為弱人工智能&#xff0c;因為它不具備全面的通用智能能力。 典型應用&#xff1a; 語音助手&#xff0c;圖像識別系統、自動駕駛、機器人等。 大語言模型ChatGPT …

熱點Key拆分方案實現

熱點Key拆分方案實現 一、核心拆分策略 熱點Key拆分的核心思想是將單個高頻訪問Key分解為多個子Key&#xff0c;分散存儲到不同Redis節點&#xff0c;降低單節點壓力。以下是具體實現方案&#xff1a; 二、實現方式 1. 業務層哈希分片實現 創建Key分片工具類&#xff0c;通…

程序人生,人生如戲

程序員的出路在哪里 很多計算機科班出身&#xff08;也有轉行的&#xff09;同學&#xff0c;第一份工作都是研發&#xff0c;測試&#xff0c;項目管理之類的工作&#xff0c;這里面最多的應該就是從事研發相關的崗位。那我們就以研發崗來舉例&#xff0c;聊聊我職業生涯從業…

傳感器:基于STM32F103/407系AHT20溫濕度傳感器數據采集

一、IIC總線 1、IIC總線概念 I2C&#xff08;Inter&#xff0d;Integrated Circuit&#xff09;總線是由PHILIPS公司開發的兩線式串行總線&#xff0c;用于連接微控制器及其外圍設備。是微電子通信控制領域廣泛采用的一種總線標準。它是同步通信的一種特殊形式&#xff0c;具有…

很好,搞搞期末

我要開始啦&#xff01;bulabulabulabulabula. 例題 物理地址DS*16有效地址 1.直接尋址 2.直接尋址&#xff08;允許符號代替數值&#xff0c;變量存的地址&#xff09; 3.基址尋址&#xff08;16位&#xff1a;用寄存器SI、DI、BX、BP存的有效地址&#xff09; 下面是寄存器…

機器人如何實現智能化的自主定位與導航?

機器人實現智能化自主定位與導航&#xff0c;需融合多傳感器數據、高效算法及硬件支撐&#xff0c;以下從技術框架、核心技術、典型應用場景等方面詳細解析&#xff1a; 一、技術框架&#xff1a;定位與導航的核心環節 機器人自主定位導航通常包含三個關鍵步驟&#xff0c;形…

AI醫療行業全景圖

AI醫療是以互聯網為依托&#xff0c;通過基礎設施的搭建及數據的收集&#xff0c;將人工智能技術及大數據服務應用于醫療行業中&#xff0c;提升醫療行業的診斷效率及服務質量&#xff0c;更好的解決醫療資源短缺、人口老齡化的問題AI在醫療領域應用廣泛&#xff0c;覆蓋醫療服…

Meta-KDD2025-RPG-token級別并行生成式提高效率!

文章目錄 1. 背景2. 方法2.1 長語義id2.1.1 獲取 item embedding2.1.2 item embedding 離散化 2.2 并行生成語義 id2.2.1 訓練&#xff08;item串行&#xff0c;token并行&#xff09;2.2.2 高效 logit 打分暴力枚舉式打分&#xff1a;高效實現&#xff1a;復雜度分析&#xff…

快速搭建MySQL8.0本地數據庫,連接idea

1.打開終端&#xff0c;按順序輸入命令&#xff0c;在root用戶下&#xff0c;創建用戶和數據庫 1.進入數據庫 mysql -u root -p 2.創建專用數據庫 create database 數據庫名 character set utf8mb4 3.使用數據庫 use 數據庫名 4.設置此數據庫用戶 create user "用戶名&q…

Docker 常用運維命令

Docker 提供了一系列命令來幫助開發者和運維人員管理容器、鏡像以及其他 Docker 對象。以下是一些常用的 Docker 運維命令&#xff0c;這些命令可以幫助你更高效地進行日常操作&#xff1a; 容器相關命令 啟動容器&#xff1a; docker start <container_id_or_name>停止…

linux下MQTT訂閱發布驗證-mosquitto安裝測試流程

本文詳細介紹了&#xff0c;如何在linux環境搭建一個MQTT server, 并同時安裝 了客戶端 &#xff0c;進行了mqtt消息發布、訂閱驗證。 mosquitto 服務端安裝(ubuntu) #添加源 sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppasudo apt update # install mosquitto su…

Source Insight 的簡單介紹

對 Source Insight 進行一次全面深入的介紹。這款軟件在特定開發者群體中&#xff08;尤其是嵌入式、驅動、系統級編程領域&#xff09;享有極高的聲譽&#xff0c;被譽為“源碼閱讀和分析的神器”。 一、 起源與歷史 誕生背景 (1990年代中后期)&#xff1a; 在1990年代中后期…

Linux 系統中,查詢 JDK 的安裝目錄

在 Linux 系統中&#xff0c;查詢 JDK 的安裝目錄可以通過以下幾種常用方法&#xff1a; 方法 1&#xff1a;通過 update-alternatives 查詢&#xff08;推薦&#xff09; 適用于通過包管理器&#xff08;如 apt/yum&#xff09;安裝的 JDK&#xff1a; sudo update-alternat…

簡單工廠、工廠、抽象工廠模式

簡單工廠、工廠、抽象工廠模式 1. **簡單工廠模式&#xff08;Simple Factory&#xff09;**2. **工廠方法模式&#xff08;Factory Method&#xff09;**3. **抽象工廠模式&#xff08;Abstract Factory&#xff09;**對比總結 以下是三種工廠模式在C#中的實現與對比分析&…

如何在Redis中實現緩存功能

Redis 是一種高性能的鍵值存儲系統&#xff0c;廣泛用于實現緩存功能。它通過將數據存儲在內存中&#xff0c;能夠快速讀寫數據&#xff0c;從而顯著提高應用程序的性能。在Redis中實現緩存功能需要結合數據讀寫策略、失效機制及性能優化方案。 一、Redis作為緩存的核心優勢 …

Kafka消費者客戶端源碼深度解析:從架構到核心流程

在Kafka生態系統中&#xff0c;消費者客戶端作為數據消費的入口&#xff0c;其設計與實現直接影響數據處理的效率和可靠性。本文將深入Kafka消費者客戶端源碼&#xff0c;通過核心組件解析、流程拆解與源碼分析&#xff0c;揭示其高性能消費背后的技術奧秘&#xff0c;并輔以架…