【2024華為OD-E卷-200分-數值同化】(題目+思路+JavaC++Python解析)

題目描述

題目名稱:數值同化

題目背景: 在一個數值同化過程中,你需要將一組數值進行特定的處理,使得它們能夠“同化”到一個目標值附近。具體做法是,給定一個數組 nums 和一個目標值 target,你需要對數組中的每個元素進行操作,使得數組中的所有元素都盡可能接近 target。

輸入

  • nums:一個包含整數的數組,表示需要進行同化的數值。
  • target:一個整數,表示同化目標值。

輸出

  • 返回同化后的數組,數組中的每個元素都是經過處理后盡可能接近 target 的值。同化規則如下:
    1. 如果 nums[i] < target,則同化后的值為 nums[i] + diff,其中 diff 是 target 與 nums[i] 的差值的一半(向上取整)。
    2. 如果 nums[i] >= target,則同化后的值為 nums[i] 減去 diff,其中 diff 是 target 與 nums[i] 差值的一半(向下取整)。

示例

輸入:nums = [1, 3, 5, 7], target = 4
輸出:[3, 4, 4, 5]
解釋:
1 < 4,同化后為 1 + (4 - 1) // 2 + 1 = 3
3 < 4,同化后為 3 + (4 - 3) // 2 + 0 = 4
5 >= 4,同化后為 5 - (5 - 4) // 2 = 4
7 >= 4,同化后為 7 - (7 - 4) // 2 = 5

思路

  1. 遍歷數組:我們需要遍歷數組中的每個元素。
  2. 計算差值:對于每個元素,計算它與目標值的差值。
  3. 同化規則
    • 如果當前元素小于目標值,則增加差值的一半(向上取整)。
    • 如果當前元素大于等于目標值,則減少差值的一半(向下取整)。
  4. 存儲結果:將同化后的值存儲在新的數組中,并返回該數組。

Java 代碼解析

import java.util.Arrays;

public class NumericalAssimilation {
????public static int[] assimilate(int[] nums, int target) {
????????int[] result = new int[nums.length];
????????for (int i = 0; i < nums.length; i++) {
????????????int diff = Math.abs(nums[i] - target);
????????????if (nums[i] < target) {
????????????????result[i] = nums[i] + (diff + 1) / 2; // 向上取整
????????????} else {
????????????????result[i] = nums[i] - diff / 2; // 向下取整
????????????}
????????}
????????return result;
????}

????public static void main(String[] args) {
????????int[] nums = {1, 3, 5, 7};
????????int target = 4;
????????int[] assimilated = assimilate(nums, target);
????????System.out.println(Arrays.toString(assimilated)); // 輸出:[3, 4, 4, 5]
????}
}

C++ 代碼解析

#include <iostream>
#include <vector>
#include <cmath>

std::vector<int> assimilate(const std::vector<int>& nums, int target) {
????std::vector<int> result(nums.size());
????for (size_t i = 0; i < nums.size(); ++i) {
????????int diff = std::abs(nums[i] - target);
????????if (nums[i] < target) {
????????????result[i] = nums[i] + (diff + 1) / 2; // 向上取整
????????} else {
????????????result[i] = nums[i] - diff / 2; // 向下取整
????????}
????}
????return result;
}

int main() {
????std::vector<int> nums = {1, 3, 5, 7};
????int target = 4;
????std::vector<int> assimilated = assimilate(nums, target);
????for (int num : assimilated) {
????????std::cout << num << " ";
????}
????// 輸出:3 4 4 5
????return 0;
}

Python 代碼解析

def assimilate(nums, target):
????result = []
????for num in nums:
????????diff = abs(num - target)
????????if num < target:
????????????result.append(num + (diff + 1) // 2) ?# 向上取整
????????else:
????????????result.append(num - diff // 2) ?# 向下取整
????return result

nums = [1, 3, 5, 7]
target = 4
assimilated = assimilate(nums, target)
print(assimilated) ?# 輸出:[3, 4, 4, 5]

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

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

相關文章

【HUAWEI】HCIP-AI-MindSpore Developer V1.0 | 結課測試

目錄 一 單選 二 多選 三 判斷 四 填空 一 單選 1 一張圖片在存放過程中出現了很多小的噪聲&#xff0c;或白或黑&#xff0c;對其掃描進行以下哪一個操作的去噪效果最好&#xff1f; A.均值濾波 B.中值濾波 C.高斯濾波 D.拉普拉斯濾波 2 以下哪個方法中使用了掩碼語…

ESP32-S3模組上實現低功耗(6)

接前一篇文章:ESP32-S3模組上實現低功耗(5) 本文內容參考: 系統低功耗模式介紹 - ESP32-S3 - — ESP-IDF 編程指南 latest 文檔 電源管理 - ESP32-S3 - — ESP-IDF 編程指南 latest 文檔

chrome瀏覽器的更新提示彈窗無法更新Chrome解決方法

使用組策略編輯器 此方法適用于 Windows 系統且系統為專業版及以上版本&#xff0c;家庭版系統沒有組策略功能。 按下Win R鍵&#xff0c;打開 “運行” 對話框&#xff0c;輸入gpedit.msc并回車&#xff0c;打開組策略編輯器。 在組策略編輯器中&#xff0c;依次展開 “計算機…

高山旅游景區有效降低成本,無人機山下到山上物資吊運技術詳解

在高山旅游景區&#xff0c;傳統的物資運輸方式往往面臨人力成本高昂、效率低下等問題&#xff0c;而無人機技術的引入為這一難題提供了新的解決方案。以下是對無人機從山下到山上進行物資吊運技術的詳細解析&#xff1a; 一、無人機物資吊運技術的優勢 1. 降低人力成本&#…

讀博生涯記錄2 __ 2025.1.8 --- 關于博一上學期的一些經歷和感受

時間過得好快&#xff0c;2024年8月底入學至今都快半年了。學校已經放寒假了&#xff0c;我也計劃過多幾天就回去&#xff0c;在這個太陽早已落山的午后&#xff0c;在這工位區的一隅&#xff0c;想著記錄一下本學期我的一些經歷和感受。 專業上&#xff1a;本學期我給自己的規…

Python爬蟲 - 豆瓣圖書數據爬取、處理與存儲

文章目錄 前言一、使用版本二、需求分析1. 分析要爬取的內容1.1 分析要爬取的單個圖書信息1.2 爬取步驟1.2.1 爬取豆瓣圖書標簽分類頁面1.2.2 爬取分類頁面1.2.3 爬取單個圖書頁面 1.3 內容所在的標簽定位 2. 數據用途2.1 基礎分析2.2 高級分析 3. 應對反爬機制的策略3.1 使用 …

2501d,d17年前就有了編譯時

D在17年前就有了編譯時!D功能穩步進入其他語言. :此處的編譯時關鍵字指示在編譯時運行它前面的塊. D不使用關鍵字來觸發它.觸發它的是"常 式".當然,必須在編譯時可計算常式.如: int sum(int a, int b) > a b; void test() {int s sum(3, 4); //在運行時運行,e…

Taro地圖組件和小程序定位

在 Taro 中使用騰訊地圖 1.首先在項目配置文件 project.config.json 中添加權限&#xff1a; {"permission": {"scope.userLocation": {"desc": "你的位置信息將用于小程序位置接口的效果展示"}} }2.在 app.config.ts 中配置&#x…

深度學習——回歸實戰

線性回歸&#xff1a; 線性&#xff1a;自變量和應變量之間是線性關系&#xff0c;如&#xff1a;y wx b 回歸&#xff1a;擬合一條曲線&#xff0c;使真實值和擬合值差距盡可能小 目標&#xff1a;求解參數w和b 所用算法&#xff1a;梯度下降算法 梯度下降&#…

Angular 最新版本和 Vue 對比完整指南

1. Angular 最新版本 當前 Angular 最新穩定版本是 Angular 17(2024年初) 2. 主要區別對比表 特性 | Angular | Vue 框架類型 | 完整框架 | 漸進式框架 默認語言 | TypeScript | JavaScript/TypeScript 數據處理 | RxJS | Promise/async/await 架構特點 | 依賴注入,…

單片機-串轉并-74HC595芯片

1、74HC595芯片介紹 74HC595 是一個 8 位串行輸入、并行輸出的位移緩存器&#xff0c;其中并行輸出為三態輸出&#xff08;即高電平、低電平和高阻抗&#xff09;。 15 和 1 到 7 腳 QA--QH&#xff1a;并行數據輸出 9 腳 QH 非&#xff1a;串行數據輸出 10 腳 SCLK 非&#x…

探索AI在地質科研繪圖中的應用:ChatGPT與Midjourney繪圖流程與效果對比

文章目錄 個人感受一、AI繪圖流程1.1 Midjourney&#xff08;1&#xff09;環境配置&#xff08;2&#xff09;生成prompt&#xff08;3&#xff09;完善prompt&#xff08;4&#xff09;開始繪圖&#xff08;5&#xff09;后處理 1.2 ChatGPT不合理的出圖結果解決方案 二、主題…

【微服務】6、限流 熔斷

線程隔離與容錯處理 本視頻主要講解了在購物車業務中&#xff0c;因商品微服務響應慢導致的問題及解決方案&#xff0c;重點介紹了線程隔離后查詢購物車業務不可用的情況&#xff0c;以及如何通過Fallback邏輯進行緩解&#xff0c;包括配置Feign調用為簇點資源、添加Fallback邏…

springboot+vue使用easyExcel實現導出功能

vue部分 // 導出計算數據exportDataHandle(id) {this.$http({url: this.$http.adornUrl(/xxx/xxx/exportCalDataExcel),method: post,data: this.$http.adornData({id: id}),responseType: blob, // 重要&#xff1a;告訴axios我們希望接收二進制數據}).then(({data}) > {c…

25年01月HarmonyOS應用基礎認證最新題庫

判斷題 “一次開發&#xff0c;多端部署”指的是一個工程&#xff0c;一次開發上架&#xff0c;多端按需部署。為了實現這一目的&#xff0c;HarmonyOS提供了多端開發環境&#xff0c;多端開發能力以及多端分發機制。 答案&#xff1a;正確 《鴻蒙生態應用開發白皮書》全面闡釋…

ELK實戰(最詳細)

一、什么是ELK ELK是三個產品的簡稱&#xff1a;ElasticSearch(簡稱ES) 、Logstash 、Kibana 。其中&#xff1a; ElasticSearch&#xff1a;是一個開源分布式搜索引擎Logstash &#xff1a;是一個數據收集引擎&#xff0c;支持日志搜集、分析、過濾&#xff0c;支持大量數據…

Dubbo-筆記隨記一

一、實戰 1 . Springboot整合 1.1 服務提供者 1.1.1 依賴 <dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>3.2.10</version></dependency><dependency&g…

git tag

文章目錄 1.簡介2.格式3.選項4.示例參考文獻 1.簡介 同大多數 VCS 一樣&#xff0c;Git 也可以對某一時間點的版本打上標簽&#xff0c;用于版本的發布管理。 一個版本發布時&#xff0c;我們可以為當前版本打上類似于 v.1.0.1、v.1.0.2 這樣的 Tag。一個 Tag 指向一個 Commi…

ETCD滲透利用指南

目錄 未指定使用put操作報錯 未指定操作版本使用get報錯 首先etcd分為兩個版本v2和v3&#xff0c;不同的API結果無論是訪問URL還是使用etcdctl進行通信&#xff0c;都會導致問題&#xff0c;例如使用etcdctl和v3進行通信&#xff0c;如果沒有實名ETCDCTL_API3指定API版本會直接…

使用VUE3創建個人靜態主頁

使用VUE3創建個人靜態主頁 &#x1f31f; 前言&#x1f60e;體驗&#x1f528; 具體實現? 核心功能&#x1f3d7;? 項目結構&#x1f680; 用這個項目部署 Git Page &#x1f4d6; 參考 &#x1f31f; 前言 作為開發者或者內容創作者&#xff0c;我們經常需要創建靜態網頁&a…