【2023C卷最新題目】20天拿下華為OD筆試之【貪心】2023C-找座位/2023B-座位調整-全網注釋最詳細分類最全的華為OD真題題解

文章目錄

  • 題目描述與示例
    • 題目描述
    • 輸入
    • 輸出
    • 說明
    • 示例一
      • 輸入
      • 輸出
    • 示例二
      • 輸入
      • 輸出
      • 說明
  • 解題思路
  • 代碼
    • Python
    • Java
    • C++
    • 時空復雜度
  • 相同問題不同描述
    • 2023C-找座位
      • 題目描述
      • 輸入描述
      • 輸出描述
      • 示例一
        • 輸入
        • 輸出
      • 示例二
        • 輸入
        • 輸出
  • 華為OD算法/大廠面試高頻題算法練習沖刺訓練

題目描述與示例

題目描述

疫情期間課堂的座位進行了特殊的調整,不能出現兩個同學緊挨著,必須隔至少一個空位。

給你一個整數數組 desk 表示當前座位的占座情況,由若干 01 組成,其中 0 表示沒有占位,1 表示占位。在不改變原有座位秩序情況下,還能安排坐幾個人?

輸入

第一行是個子數組表示作為占座情況,由若干 01 組成,其中 0 表示沒有占位,1 表示占位

輸出

輸出數值表示還能坐幾個人

說明

1 <= desk.length <= 2 * 10^4

示例一

輸入

1,0,0,0,1

輸出

1

示例二

輸入

0,0,0,0,0

輸出

3

說明

只有 desk[2] 的位置可以坐一個人

解題思路

注意,本題和LC605. 種花問題幾乎完全一致。

代碼

Python

# 題目:2023B-座位調整
# 分值:100
# 作者:許老師-閉著眼睛學數理化
# 算法:貪心
# 代碼看不懂的地方,請直接在群上提問# 輸入的座位數組
lst = input().split(",")
# 能坐下的總人數
ans = 0# 遍歷數組,在遍歷過程中,采取貪心的思路,并不需要【每個位置】都去查看是否可以坐下
# 1、當前位置已經有人坐下,那么后一個位置明顯不能坐下,可以跳過去
# 2、當前位置沒有人坐下,需要考慮后面一個位置是否種花# 初始化座位索引為0
i = 0while i < len(lst):# 1、當前位置已經有人坐下,lst[i] == "1",那么后一個位置明顯不能坐下,可以跳過去# 所以讓 i 執行加 2 操作,跳過了加 1 后的那個位置if lst[i] == "1":# 讓 i 執行加 2 操作i += 2# 2、否則說明當前位置沒有人坐下 lst[i] == "0"else:# 3、如果這個位置【是】數組的最后一個位置,說明后一個位置不存在,沒有限制,說明 lst[i] 可以坐下# 4、如果這個位置【不是】數組的最后一個位置,那么只有當后一個位置【沒人坐下】,才有資格在 lst[i] 位置坐下# 這兩種條件都可以在 lst[i] 位置坐下if i == len(lst) - 1 or lst[i + 1] == "0":# 成功之后,坐下人數ans + 1ans += 1# 在 lst[i] 位置種花之后,i + 1 位置不需要去考慮了,因為它明顯不能種花,可以跳過去# 讓 i 執行加 2 操作i += 2# 5、當前位置沒有人坐下 lst[i] == "0"# 6、但是后一個位置已經有人坐下了,那么當前位置無法坐下# i + 1 位置已經坐下,不用再去訪問一遍# i + 2 位置考慮到 i + 1 位置已經有人坐下,所以也無法坐下,不用再去訪問# 讓 i 執行加 3 操作else:i += 3print(ans)

Java

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String[] lst = scanner.nextLine().split(",");int ans = 0;int i = 0;while (i < lst.length) {if (lst[i].equals("1")) {i += 2;} else {if (i == lst.length - 1 || lst[i + 1].equals("0")) {ans += 1;i += 2;} else {i += 3;}}}System.out.println(ans);}
}

C++

#include <iostream>
#include <sstream>
#include <vector>using namespace std;int main() {string line;getline(cin, line);istringstream iss(line);vector<string> lst;string val;while (getline(iss, val, ',')) {lst.push_back(val);}int ans = 0;int i = 0;while (i < lst.size()) {if (lst[i] == "1") {i += 2;} else {if (i == lst.size() - 1 || lst[i + 1] == "0") {ans += 1;i += 2;} else {i += 3;}}}cout << ans << endl;return 0;
}

時空復雜度

時間復雜度:O(NlogN)。排序時間復雜度

空間復雜度:O(1)。僅需要用到若干常數變量。

相同問題不同描述

2023C-找座位

題目描述

在一個大型體育場內舉辦了一場大型活動,由于疫情防控的需要,要求每位觀眾的必須間隔至少一個空位才允許落座。現在給出一排觀眾座位分布圖,座位中存在已落座的觀眾,請計算出,在不移動現有觀眾座位的情況下,最多還能坐下多少名觀眾。

輸入描述

一個數組,用來標識某一排座位中,每個座位是否已經坐人。0 表示該座位沒有坐人,1 表示該座位已經坐人。 1<=數組長度<=10000

輸出描述

整數,在不移動現有觀眾座位的情況下,最多還能坐下多少名觀眾。

示例一

輸入
10001
輸出
1

示例二

輸入
0101
輸出
0

華為OD算法/大廠面試高頻題算法練習沖刺訓練

  • 華為OD算法/大廠面試高頻題算法沖刺訓練目前開始常態化報名!目前已服務100+同學成功上岸!

  • 課程講師為全網50w+粉絲編程博主@吳師兄學算法 以及小紅書頭部編程博主@閉著眼睛學數理化

  • 每期人數維持在20人內,保證能夠最大限度地滿足到每一個同學的需求,達到和1v1同樣的學習效果!

  • 60+天陪伴式學習,40+直播課時,300+動畫圖解視頻,300+LeetCode經典題,200+華為OD真題/大廠真題,還有簡歷修改、模擬面試、專屬HR對接將為你解鎖

  • 可上全網獨家的歐弟OJ系統練習華子OD、大廠真題

  • 可查看鏈接 大廠真題匯總 & OD真題匯總(持續更新)

  • 綠色聊天軟件戳 od1336了解更多

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

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

相關文章

Spring Boot創建和使用(重要)

Spring的誕生是為了簡化Java程序開發的&#xff01; Spring Boot的誕生是為了簡化Spring程序開發的&#xff01; Spring Boot就是Spring框架的腳手架&#xff0c;為了快速開發Spring框架而誕生的&#xff01;&#xff01; Spring Boot的優點&#xff1a; 快速集成框架&#x…

2023年G2電站鍋爐司爐證考試題庫及G2電站鍋爐司爐試題解析

題庫來源&#xff1a;安全生產模擬考試一點通公眾號小程序 2023年G2電站鍋爐司爐證考試題庫及G2電站鍋爐司爐試題解析是安全生產模擬考試一點通結合&#xff08;安監局&#xff09;特種作業人員操作證考試大綱和&#xff08;質檢局&#xff09;特種設備作業人員上崗證考試大綱…

MySQL 事務的底層原理和 MVCC(一)

在事務的實現機制上&#xff0c;MySQL 采用的是 WAL&#xff08;Write-ahead logging&#xff0c;預寫式日志&#xff09;機制來實現的。 在使用 WAL 的系統中&#xff0c;所有的修改都先被寫入到日志中&#xff0c;然后再被應用到系統中。通常包含 redo 和 undo 兩部分信息。 …

【Java開發】 Springboot集成Mybatis-Flex

1 Mybatis-Flex 介紹 1.1簡介 Mybatis-Flex 是一個優雅的 Mybatis 增強框架&#xff0c;它非常輕量、同時擁有極高的性能與靈活性。我們可以輕松的使用 Mybaits-Flex 鏈接任何數據庫&#xff0c;其內置的 QueryWrapper 亮點幫助我們極大的減少了 SQL 編寫的工作的同時&#xff…

cocos2dx ??Animate3D(二)

Twirl 扭曲旋轉特效 // 持續時間(時間過后不會回到原來的樣子) // 整個屏幕被分成幾行幾列 // 扭曲中心位置 // 扭曲的數量 // 振幅 static Twirl* create(float duration, const Size& gridSize, const Vec2& position, unsigned int twirls, float amplitude)…

編程語言發展史:C語言的誕生及其影響

預計更新 第一部分&#xff1a;早期編程語言 1.1布爾代數和機器語言 1.2匯編語言的出現和發展 1.3高級語言的興起 第二部分&#xff1a;主流編程語言 1.1 C語言的誕生及其影響 1.2 C語言的發展和應用 1.3 Java語言的出現和發展 1.4 Python語言的興起和特點 1.5 JavaScript語言…

基于springboot實現攝影跟拍預定管理系統【項目源碼+論文說明】計算機畢業設計

基于springboot實現攝影跟拍預定管理系統演示 摘要 首先,論文一開始便是清楚的論述了系統的研究內容。其次,剖析系統需求分析,弄明白“做什么”,分析包括業務分析和業務流程的分析以及用例分析,更進一步明確系統的需求。然后在明白了系統的需求基礎上需要進一步地設計系統,主要…

【2018年數據結構真題】

方法一 給定一個含n(n>1)個整數的數組&#xff0c;請設計一個在時間上盡可能高效的算法&#xff0c;找出數組中未出現的最小正整數。例如&#xff0c;數組{-5&#xff0c;3&#xff0c;2&#xff0c;3}中未出現的最小正整數是1&#xff1b;數組{1&#xff0c;2&#xff0c;…

AIGC變革BI行業,永洪發布vividime全球化品牌

大數據產業創新服務媒體 ——聚焦數據 改變商業 國內BI商業智能市場&#xff0c;一直有著“內永洪&#xff0c;外Tableau”的說法。成立于2012年的永洪科技經過十多年的發展&#xff0c;早已崛起為國內大數據行業的一支勁旅。 ChatGPT火爆出圈之后&#xff0c;AIGC快速滲透&am…

每日一練 | 華為認證真題練習Day19

Day19 華為認證中級考試真題 1、DHCP協議運行過程中&#xff0c;客戶端從申請到IP地址時的流程是 A.1-2-3-4 B.1-4-3-2 C.3-2-1-4 D.3-4-1-2 2、VRRP報文的IP協議號是&#xff1a; A.112 B.114 C.116 D.118 3、MPLS的標簽字段共有多少bit? A.8 B.3 C.1 D.20 4…

【C++】vector的介紹與使用

&#x1f9d1;?&#x1f393;個人主頁&#xff1a;簡 料 &#x1f3c6;所屬專欄&#xff1a;C &#x1f3c6;個人社區&#xff1a;越努力越幸運社區 &#x1f3c6;簡 介&#xff1a;簡料簡料&#xff0c;簡單有料~在校大學生一枚&#xff0c;專注C/C/GO的干貨分…

2020年下半年試題一:論信息系統項目的成本管理

論文題目 1.概要敘述你參與過的信息系統項目&#xff08;項目的背景、項目規模、發起單位、目的、項目內容、組織結構、項目周期、交付的成果等&#xff09;&#xff0c;并說明你在其中承擔的工作&#xff08;項目背景要求本人真實經歷&#xff0c;不得抄襲及杜撰&#xff09;。…

編程語言發展史:匯編語言的出現和發展

一、匯編語言的出現 隨著計算機硬件的發展&#xff0c;機器語言變得越來越復雜&#xff0c;難以被人類程序員理解和編寫。因此&#xff0c;出現了更高級別的編程語言&#xff0c;這些語言使用類似英語的語法&#xff0c;使程序員能夠更容易地編寫和維護程序。 其中一種高級語…

web網頁滲透測試

web網頁滲透測試 流程 信息收集網站掃描訪問控制測試漏洞掃描嘗試注入攻擊驗證漏洞后滲透測試滲透測試報告 信息收集 收集目標網站的基本信息&#xff0c;包括域名、IP 地址、子域名等。使用 WHOIS 查詢、搜索引擎、子域名枚舉工具等進行信息收集。 網站掃描 使用端口掃描…

【Java 進階篇】Redis 數據結構:輕松駕馭多樣性

引言 Redis是一款強大的鍵值對存儲系統&#xff0c;其數據結構的多樣性是其引以為傲的特點之一。在這篇博客中&#xff0c;我們將深入探討Redis的主要數據結構&#xff0c;包括字符串、哈希表、列表、集合和有序集合&#xff0c;并通過實例代碼演示它們的用法。 1. 字符串&am…

在中國企業出海的大浪潮下,亞馬遜云科技提供遍及全球的基礎設施和技術支持

中國技術出海是中國企業更高層次更高質量的全球化。在人類文明發展史上&#xff0c;凝聚中國古人智慧結晶的造紙術、印刷術、火藥、指南針等&#xff0c;曾為中國技術出海寫下過濃墨重彩的一筆。在今天&#xff0c;如金山辦公、店匠科技、ADVANCE.AI等公司又以技術立業&#xf…

msvcp140.dll是什么?msvcp140.dll丟失的有哪些解決方法

在計算機使用過程中&#xff0c;我們經常會遇到一些錯誤提示&#xff0c;其中之一就是“msvcp140.dll丟失”。這個錯誤通常會導致某些應用程序無法正常運行。為了解決這個問題&#xff0c;我們需要采取一些措施來修復丟失的msvcp140.dll文件。本文將詳細介紹5個解決msvcp140.dl…

Day27|Leetcode 39. 組合總和 Leetcode 40. 組合總和 II Leetcode131. 分割回文串

Leetcode 39. 組合總和 題目鏈接 39 組合總和 本題目和前面的組合問題差不多&#xff0c;只不過這里能重復選取數字&#xff0c;還是要注意組合的定義&#xff0c;交換數字順序還是算一個組合&#xff0c;所以這里還是用我們的startIndex來記錄取的數字到哪里了&#xff0c;下…

阿里云發送短信

官方代碼如下&#xff1a; // This file is auto-generated, dont edit it. Thanks. package com.aliyun.sample;import com.aliyun.tea.*;public class Sample {/*** 使用AK&SK初始化賬號Client* param accessKeyId* param accessKeySecret* return Client* throws Excep…

【電子通識】USB3.0和USB2.0有什么區別?

版本 USB2.0是2000年4月27日由USB-IF組織提出了USB2.0總線協議規范。 USB3.0是2008年11月17日由USB-IF組織提出了超高速USB3.0規范。 圖標對比 USB2.0的標志就是和USB1.1的標志基本上沒啥區別&#xff0c;還是以前的那個樣子&#xff0c;使用黑色顏色用標識 USB3.0它有一個S…