24年OPPO秋季筆試題

257. 小歐過河

鏈接:https://kamacoder.com/problempage.php?pid=1337

思路:這道題的實際需要求的就是在兩個11之間,最多能有多少個0。可以記錄在遍歷序列的時候,記錄有最多個0的1的兩個下標,最后再返回其差值。要注意的是,兩岸也算1,需要在數組里面也要加上。

#include <iostream>
#include <vector>using namespace std;int main()
{int n;cin >> n;int lstIndex = 0;int curIndex = 0;int res = 0;vector<int> nums(n + 2, 0);nums[0] = 1;nums[n + 1] = 1;for (int i = 1; i < n + 1; ++i){cin >> nums[i];}for (int i = 0; i < n + 2; ++i){if (nums[i] == 0){continue;}else{lstIndex = curIndex;curIndex = i;res = max(res, curIndex - lstIndex);}}cout << res << endl;return 0;
}

258. 小歐的數組劃分

鏈接:https://kamacoder.com/problempage.php?pid=1338

思路:這道題可以采用貪心算法,也就是遍歷這個數組,然后每一位都進行或運算,直到不滿足或運算之后的數字<k,就讓答案加1,即分段;然后進行下一區間的或運算。

#include <iostream>
#include <vector>
#include <algorithm>using namespace std;int main()
{int n, k;cin >> n >> k;vector<int> nums(n, 0);for (int i = 0; i < n; ++i){cin >> nums[i];}int res = 1;int sum = 0;for (int i = 0; i < n; ++i){if (nums[i] > k){cout << -1 << endl;return 0;}if (int(sum | nums[i]) < k){sum = int(sum | nums[i]);}else{res++;sum = nums[i];}}cout << res << endl;return 0;
}

259.小歐的子序列數量

鏈接:https://kamacoder.com/problempage.php?pid=1339

思路:這里可以采用動態規劃的思想。將dp數組的狀態可以表示為第i個數字的前面所包含的[11/114/1145]串的數量。不難發現,如果當前下標的數字是1,且上一個數字是1,就可以把dp[11]的數字加1,反之,則不加。如果遇到了一個數字4,那么dp[114]可以更新為前面dp[11]的數量加上dp[114]已經有的數量。如果遇到了一個數字5則是同理。

#include <iostream>long long mod=1e9;
using namespace std;int main()
{int n;cin >> n;cin.ignore();string str;getline(cin, str);int dp[3]{};for (int i = 0; i < n; ++i){if (str[i] == '1'){if (i && str[i - 1] == '1'){dp[0]++;}}else if (str[i] == '4'){dp[1] = (dp[1] + dp[0]) % (mod + 7);}else if (str[i] == '5'){dp[2] = (dp[2] + dp[1]) % (mod + 7);}}cout << dp[2] << endl;return 0;
}

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

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

相關文章

處理Lombok的一個小BUG

對于Lombok報錯的修改 一、問題描述 在使用IDEA創建spring boot項目時如果你勾選了Lombok&#xff0c;生成的Lombok會隨著maven的刷新而改變處理器的掃描路徑&#xff0c;從項目類變到自定義的處理器路徑 二、原因與解決方法 原因就是這里寫了Lombok的路徑才會導致你每次刷新都…

【Java入門到精通】(一)Java發展歷程與環境搭建指南

一、Java的發展 Java是在1991年由SUN公司的James Gosling&#xff08;Java之父&#xff09;及其團隊所研發的一種編程語言&#xff0c;第一個版本耗時18個月&#xff0c;最開始命名為Oak&#xff08;一種橡樹&#xff09;。Java現在廣泛應用于各種大型互聯網應用&#xff0c;其…

【RK3568+PG2L50H開發板實驗例程】Linux部分/UAR讀寫案例

本原創文章由深圳市小眼睛科技有限公司創作&#xff0c;版權歸本公司所有&#xff0c;如需轉載&#xff0c;需授權并注明出處&#xff08;www.meyesemi.com) 1.1. 案例簡介 本案例旨在介紹如何測試開發板上的 UART 串口通信功能。 開發板支持的串口及其對應的設備節點如下表所…

Webpack 中的 Loader 和 Plugin 全面詳解

&#x1f3af; Webpack 中的 Loader 和 Plugin 全面詳解 &#x1f4cc; 整理不易&#xff0c;記得收藏、點贊再加關注&#xff0c;后續還會更新更多實戰文檔&#xff01; Webpack 是現代前端構建體系的核心工具&#xff0c;其中 Loader 和 Plugin 是其功能擴展的兩大支柱。它們…

主流分布式中間件及其選型

分布式架構中的中間件技術 在互聯網公司的分布式架構中&#xff0c;中間件是支撐系統高可用、高并發、可擴展的核心組件。這些中間件針對分布式環境下的共性問題&#xff08;如通信、數據一致性、資源調度等&#xff09;提供標準化解決方案&#xff0c;極大降低了分布式系統的…

設備需求極致緊湊的空間體驗,我們該如何解決?

在自動化集成過程&#xff0c;往往會碰到設備對控制系統體積有極致要求的情況&#xff0c;面對這樣的挑戰&#xff0c;如何解決&#xff1f; 項目背景與需求分析 在自動化集成過程&#xff0c;往往會碰到設備對控制系統體積有極致要求的情況&#xff0c;面對這樣的挑戰&#x…

Kotlin擴展函數與屬性

擴展函數和屬性是Kotlin中最具特色的功能之一&#xff0c;它們允許我們在不修改原有類的情況下為類添加新功能。這種設計既保持了類的封裝性&#xff0c;又提供了強大的擴展能力。 一、擴展函數&#xff1a;為現有類添加新行為 1.1 基礎擴展函數 擴展函數允許我們為任何類&am…

廚師上門做飯小程序源碼php方案

廚師上門做飯小程序源碼&#xff0c;開發語言后端php&#xff0c;前端uniapp。可二開定制 三個端&#xff1a;用戶端師傅端小程序&#xff0c;pc管理后臺。 一 用戶端 1.單點大廚&#xff1a;選擇廚師預約下單&#xff0c;查看廚師評價、廚師的套餐。 2.點套餐&#xff1a;選擇…

LLM大模型如何訪問MySQL業務數據庫

目錄 一、LLM大模型如何訪問MySQL業務數據庫 1.1 為什么需要SQL Agent? 1.2 什么是 create_sql_agent&#xff1f; 1.3 什么是SQLDatabaseToolkit? 二、SQL Agent智能體操作MySQL數據庫 三、本地啟動服務 驗證效果 四、怎么提高SQL Agent智能體的回復準確性&#xff1…

MySQL(112)如何選擇讀寫分離策略?

選擇讀寫分離策略是實施讀寫分離的關鍵一步。常見的讀寫分離策略包括簡單的讀寫分離和基于負載均衡的讀寫分離。為了實現這些策略&#xff0c;我們需要動態地選擇數據源。下面詳細介紹如何實現基于Spring Boot的讀寫分離&#xff0c;并結合代碼示例展示不同策略的實現。 讀寫分…

日志-解決Linux因target is busy無法卸載硬盤/分區的問題 - PHP持續占用分區

效果圖 寫在前面 此次遇到的問題是&#xff0c;php-fpm持續占用設備/mnt/disk1&#xff0c;強制殺死php所有進程后&#xff0c;依然會自動產生新的進程再次霸占分區&#xff0c;導致設備無法卸載umount。思路是解決誰在不停的搗亂。 步驟 核心&#xff1a; 掛載文件系統到指定…

Linux系統權限維持篇

Openssh后門 重新安裝自定義的openssh&#xff0c;達到記錄賬戶密碼&#xff0c;也可以采用萬能密碼連接的功能 1、登錄方式 2、登錄軟件 3、登錄機制 環境準備 yum -y install openssl openssl-devel pam-devel zlib zlib-devel yum -y install gcc gcc-c makewget http://c…

spring中maven缺少包如何重新加載,報錯java: 程序包org.springframework.web.reactive.function不存在

錯誤原因分析 java: 程序包org.springframework.web.reactive.function不存在 這個錯誤是由于 項目中缺少 Spring WebFlux 相關依賴 導致的。org.springframework.web.reactive.function 包屬于 Spring WebFlux 模塊&#xff08;用于響應式 Web 開發&#xff09;&#xff0c;如…

Linux--線程池

目錄 Linux線程池 線程池的概念 線程池的優點 線程池的應用場景 線程池的實現 Linux線程池 線程池的概念 線程池是一種線程的使用模式。 其存在的主要原因就為&#xff1a;線程過多會帶來調度開銷&#xff0c;進而影響緩存局部性和整體性能。而線程池維護著多個線程&#…

mars3d (基于 Cesium 的輕量化三維地圖庫)

mars3d 是什么? Mars3D 作為基于 Cesium 的輕量化框架,正以其簡潔的 API 和強大的功能重新定義開發體驗。它不僅解決了原生 Cesium 學習曲線陡峭的問題,還通過封裝和優化實現了性能與易用性的雙重突破。無論是智慧城市、低空經濟還是軍事仿真,Mars3D 都能提供高效的三維可視…

uniapp 中使用路由導航守衛,進行登錄鑒權

前言: 在uniapp 使用中,對于登錄界面可能需要路由守衛進行方便判斷跳轉,以下有兩種方案,可以判斷用戶跳轉的時候是否是登錄狀態 方案一: 1. 可以使用插件 hh-router-guard 2. 使用 uni-simpe-route 方案二: 使用通過uni提供的攔截器實現, uni.addInterceptor 1.新建in…

Leetcode 262. 行程和用戶

1.題目基本信息 1.1.題目描述 表&#xff1a;Trips ----------------------- | Column Name | Type | ----------------------- | id | int | | client_id | int | | driver_id | int | | city_id | int | | status | enum | | request_at | varchar | -----------…

P1102 A-B 數對

P1102 A-B 數對 題目背景 出題是一件痛苦的事情! 相同的題目看多了也會有審美疲勞,于是我舍棄了大家所熟悉的 A+B Problem,改用 A-B 了哈哈! 題目描述 給出一串正整數數列以及一個正整數 C C C,要求計算出所有滿足 A ? B = C A - B = C A?B=C 的數對的個數(不同…

devextreme-vue的DxDataGrid如何顯示行號列

devextreme-vue我使用的是23.2版本&#xff0c;其DxDataGrid如何顯示行號列&#xff0c;官方一直沒有方案。 DataGrid - How to display a row number in data rows in Angular | DevExpress Support dxDataGrid - provide capability to display a column with row numbers …

【設計模式06】建造者模式

前言 沒什么用&#xff0c;類似于builder.build UML類圖 代碼示例 package com.sw.learn.pattern.B_create.e_builder;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();for …