藍橋杯常考排序

1.逆序?

Collections.reverseOrder() 方法對列表進行逆序排序。通過 Collections.sort() 方法配合 Collections.reverseOrder(),可以輕松實現從大到小的排序。

import java.util.ArrayList; // 導入 ArrayList 類,用于創建動態數組
import java.util.Collections; // 導入 Collections 類,提供集合操作工具方法
import java.util.List; // 導入 List 接口,表示一個有序集合public class ReverseSortExample { // 定義主類public static void main(String[] args) { // 程序的入口點// 創建一個整數列表,用于存儲數字List<Integer> numbers = new ArrayList<>();// 向列表中添加一些數字numbers.add(5); // 添加數字 5numbers.add(3); // 添加數字 3numbers.add(8); // 添加數字 8numbers.add(1); // 添加數字 1numbers.add(9); // 添加數字 9// 使用 Collections.sort() 方法對列表進行排序// Collections.reverseOrder() 指定排序順序為逆序(從大到小)Collections.sort(numbers, Collections.reverseOrder());// 輸出排序后的列表System.out.println(numbers); // 打印結果,例如:[9, 8, 5, 3, 1]}
}

2.數位排序

問題描述

小藍對一個數的數位之和很感興趣, 今天他要按照數位之和給數排序。當 兩個數各個數位之和不同時, 將數位和較小的排在前面, 當數位之和相等時, 將數值小的排在前面。

例如, 2022 排在 409 前面, 因為 2022 的數位之和是 6, 小于 409 的數位 之和 13 。

又如, 6 排在 2022 前面, 因為它們的數位之和相同, 而 6 小于 2022 。

給定正整數?n,mn,m, 請問對 1 到?nn?采用這種方法排序時, 排在第?mm?個的元 素是多少?

輸入格式

輸入第一行包含一個正整數?nn?。

第二行包含一個正整數?mm?。

輸出格式

輸出一行包含一個整數, 表示答案。

樣例輸入

13
5

樣例輸出

3

?根據數位之和對數字進行排序,并輸出第m個數字。數位之和就是把一個數字的每一位加起來,比如數字123的數位之和是1+2+3=6。

自定義排序規則

我們按照以下規則對數字進行排序:

  1. 先比較數位之和:數位之和小的數字排在前面。

  2. 如果數位之和相同:就按照數字本身的大小排序,小的排在前面。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(); // 讀取nint m = sc.nextInt(); // 讀取mArrayList<Integer> list = new ArrayList<>();for (int i = 1; i <= n; i++) {list.add(i); // 把1到n的數字添加到列表中}// 使用自定義比較器進行排序Collections.sort(list, new Comparator<Integer>() {public int compare(Integer a, Integer b) {int sumA = digitSum(a); // 計算a的數位之和int sumB = digitSum(b); // 計算b的數位之和if (sumA != sumB) {return sumA - sumB; // 數位之和小的排在前面} else {return a - b; // 數位之和相同,按數值大小排序}}});System.out.println(list.get(m - 1)); // 輸出第m個元素(索引從0開始)}// 計算一個數字的數位之和private static int digitSum(int num) {int sum = 0;while (num > 0) {sum += num % 10; // 取最后一位數字并加到sum中num /= 10; // 去掉最后一位數字}return sum;}
}

封閉圖形個數

問題描述

在藍橋王國,數字的大小不僅僅取決于它們的數值大小,還取決于它們所形成的“封閉圖形”的個數。

封閉圖形是指數字中完全封閉的空間,例如數字?11、22、33、55、77?都沒有形成封閉圖形,而數字?00、44、66、99?分別形成了?11?個封閉圖形,數字?88?則形成了?22?個封閉圖形。值得注意的是,封閉圖形的個數是可以累加的。例如,對于數字?6868,由于?66?形成了?11?個封閉圖形,而?88?形成了?22?個,所以?6868?形成的封閉圖形的個數總共為?33。

在比較兩個數的大小時,如果它們的封閉圖形個數不同,那么封閉圖形個數較多的數更大。例如,數字?4141?和數字?1818,它們對應的封閉圖形的個數分別為?11?和?22,因此數字?4141?小于數字?1818。如果兩個數的封閉圖形個數相同,那么數值較大的數更大。例如,數字?1414?和數字?4141,它們的封閉圖形的個數都是?11,但?14<4114<41,所以數字?1414?小于數字?4141。 如果兩個數字的封閉圖形個數和數值都相同,那么這兩個數字被認為是相等的。

小藍對藍橋王國的數字大小規則十分感興趣。現在,他將給定你?nn?個數?a1,a2,…,ana1?,a2?,…,an?,請你按照藍橋王國的數字大小規則,將這?nn?數從小到大排序,并輸出排序后結果。

輸入格式

第一行包含一個整數?nn,表示給定的數字個數。

第二行包含?nn?個整數?a1,a2,…,ana1?,a2?,…,an?,表示待排序的數字。

輸出格式

輸出一行,包含?nn?個整數,表示按照藍橋王國的數字大小規則從小到大排序后的結果,每兩個數字之間用一個空格分隔。

樣例輸入

3
18 29 6

樣例輸出

6 29 18

樣例說明

對于給定的數字序列?[18,29,6][18,29,6],數字?1818?的封閉圖形個數為?22,數字?2929?的封閉圖形個數為?11,數字?66?的封閉圖形個數為?11。按照封閉圖形個數從小到大排序后,得到?[29,6,18][29,6,18]。

由于數字?2929?和數字?66?的封閉圖形個數相同,因此需要進一步按照數值大小對它們進行排序,最終得到?[6,29,18][6,29,18]。

做題思路:根據數字中“封閉圖形”的數量對數字進行排序。所謂“封閉圖形”是指數字中某些部分是封閉的,比如:

  • 數字0、4、6、9各有一個封閉圖形。

  • 數字8有兩個封閉圖形。

  • 數字1、2、3、5、7沒有封閉圖形。

  • ?自定義排序規則

    我們按照以下規則對數字進行排序:

  • 先比較封閉圖形的數量:封閉圖形數量少的數字排在前面。

  • 如果封閉圖形數量相同:就按照數字本身的大小排序,小的排在前面。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;public class hh {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(); // 讀取n,表示要處理的數字個數List<Integer> list = new ArrayList<>();for (int i = 1; i <= n; i++) {list.add(sc.nextInt()); // 讀取n個數字并添加到列表中}// 使用自定義比較器進行排序Collections.sort(list, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {int suma = f(o1); // 計算o1的封閉圖形數量int sumb = f(o2); // 計算o2的封閉圖形數量if (suma == sumb) {return o1 - o2; // 封閉圖形數量相同,按數字大小排序} else {return suma - sumb; // 封閉圖形數量少的排在前面}}});// 輸出排序后的列表for (int i = 0; i < list.size(); i++) {System.out.print(list.get(i) + " ");}}// 計算一個數字中封閉圖形的數量public static int f(int m) {int sum = 0;while (m > 0) {int a = m % 10; // 取數字的最后一位if (a == 0 || a == 4 || a == 6 || a == 9) {sum += 1; // 這些數字有一個封閉圖形} else if (a == 8) {sum += 2; // 數字8有兩個封閉圖形} else {sum += 0; // 其他數字沒有封閉圖形}m = m / 10; // 去掉最后一位數字}return sum;}
}

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

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

相關文章

ILGPU的核心功能使用詳解

什么是ILGPU? ILGPU 是一種用于高性能 GPU 程序的新型 JIT&#xff08;即時&#xff09;編譯器 &#xff08;也稱為 kernels&#xff09;編寫的 .基于 Net 的語言。ILGPU 完全 用 C# 編寫&#xff0c;沒有任何原生依賴項&#xff0c;允許您編寫 GPU 真正可移植的程序。…

金融的未來

1. DeFi的爆發式增長與核心使命 DeFi&#xff08;去中心化金融&#xff09;的使命是重構傳統金融基礎設施&#xff0c;通過區塊鏈技術實現更高的透明度、可訪問性、效率、便利性和互操作性。其增長數據印證了這一趨勢&#xff1a; TVL&#xff08;總鎖定價值&#xff09;爆炸…

在Vue項目中查詢所有版本號為 1.1.9 的依賴包名 的具體方法,支持 npm/yarn/pnpm 等主流工具

以下是 在Vue項目中查詢所有版本號為 1.1.9 的依賴包名 的具體方法&#xff0c;支持 npm/yarn/pnpm 等主流工具&#xff1a; 一、使用 npm 1. 直接過濾依賴樹 npm ls --depth0 | grep "1.1.9"說明&#xff1a; npm ls --depth0&#xff1a;僅顯示直接依賴&#xf…

其利天下即將亮相第21屆(順德)家電電源與智能控制技術研討會

2025年4月25日&#xff0c;第21屆&#xff08;順德&#xff09;家電電源與智能控制技術研討會即將拉開帷幕&#xff0c;其利天下應大比特之邀&#xff0c;確認將參加此次研討會。 本次研討會&#xff0c;我司委派研發總監馮建武先生圍繞《重新定義風扇驅動&#xff1a;一套算法…

阿里云OSS

目錄 第三方服務-通用思路 SDK 準備工作 阿里云OSS-入門程序 .putObject 如何拿到文件對應的字節數組&#xff1f; .readAllBytes&#xff08;&#xff09; 集成阿里云OSS完成文件上傳 引入阿里云OSS文件上傳的工具類 上傳文件接口開發 .getOriginalFilename() 程序…

李宏毅NLP-4-語音識別part3-CTC

Connectionist Temporal Classification&#xff5c;CTC 基于連接主義時間分類&#xff08;CTC&#xff09;的語音識別架構&#xff0c;具體描述如下&#xff1a; 輸入層&#xff1a;底部的 x 1 , x 2 , x 3 , x 4 x^1, x^2, x^3, x^4 x1,x2,x3,x4代表輸入的語音信號分幀數據…

如何構建類似云數據倉庫 Snowflake 的本地數據倉庫?

目錄 一、Snowflake 架構的三大核心價值 二、本地數據倉庫要“像 Snowflake”&#xff0c;關鍵在數據服務化 三、SQL2API&#xff1a;本地數據服務共享的核心引擎 ? 什么是 SQL2API&#xff1f; ? 為什么是構建本地類 Snowflake 架構的關鍵&#xff1f; 四、QuickAPI&a…

設計模式 - 單例模式

一個類不管創建多少次對象&#xff0c;永遠只能得到該類型一個對象的實力 常用到的&#xff0c;比如日志模塊&#xff0c;數據庫模塊 餓漢式單例模式&#xff1a;還沒有獲取實例對象&#xff0c;實例對象就已經產生了 懶漢式單例模式&#xff1a;唯一的實例對象&#xff0c;…

【Windows Cmake工程配置Boost庫】

Windows Cmake工程配置Boost庫 背景配置流程1. 下載Boost庫2. 配置環境變量3. 修改CmakeLists背景 Windows環境下使用cmake開發程序,如圖需要用到boost庫,但是從官網下載的boost庫源碼沒有編譯成功,于是從網上下載boost預編譯庫,直接配置。 配置流程 1. 下載Boost庫 官…

長期堅持的本質,看重休息,看輕自律

01 你有沒有這樣的經歷&#xff0c; 年初立下減肥20斤、讀完100本書、旅行10次等目標&#xff0c; 年中發現進度太慢&#xff0c; 于是降低年初目標&#xff0c; 但年終完成度仍然不及格。 只好跨年時將希望寄托于來年&#xff0c; 明年復明年&#xff0c;明年何其多。 …

Python實現貪吃蛇三

上篇文章Python實現貪吃蛇一&#xff0c;實現了一個貪吃蛇的基礎版本。后面第二篇文章Python實現貪吃蛇二修改了一些不足&#xff0c;但最近發現還有兩點需要優化&#xff1a; 1、生成食物的時候有概率和記分牌重合 2、游戲缺少暫停功能 先看生成食物的時候有概率和記分牌重合的…

LSTM概述

一、LSTM的背景與動機 1.1 為什么需要LSTM? 在深度學習中,普通的神經網絡(如全連接網絡或卷積神經網絡)在處理序列數據時表現不佳,因為它們無法捕捉數據中的時間依賴關系。循環神經網絡(RNN)被設計來處理序列數據,通過隱藏狀態在時間步之間傳遞信息。然而,傳統RNN存…

DDS信號發生器設計

一、基本概述 1.1 DDS簡介 DDS信號發生器即直接數字頻率合成&#xff08;Direct Digital Frequency Synthesis&#xff0c;簡稱DDS&#xff09;是一種利用數字技術生成信號的方法。它通過數字信號處理技術&#xff0c;將數字信號轉換為模擬信號&#xff0c;從而生成高質量的正…

生成式AI:如何用大模型呼叫系統提升銷售轉化率?

生成式AI技術正以驚人的速度重塑商業版圖。從智能助手到自動化營銷&#xff0c;從數據分析到客戶洞察&#xff0c;生成式AI正在顛覆傳統商業模式&#xff0c;云蝠智能以大模型、智能體為核心技術,致力于為百萬企業提供語音互動智能體平臺與解決方案&#xff0c;為企業在銷售轉化…

OOP丨《Java編程思想》閱讀筆記Chapter 6 : 訪問權限控制

《Java編程思想》Chapter 6 : 訪問權限控制 1. 前言 1.1. 訪問權限控制的等級1.2. package關鍵字的引入 2. 包&#xff1a;庫單元 2.1. 代碼組織2.2. 包名的創建 3. Java訪問權限修飾詞 3.1. 包訪問權限3.2. public: 接口訪問權限3.3. private: 你無法訪問3.4. protected: 繼承…

reconic 天空 模型

目錄 推理代碼&#xff1a; EnvLight 代碼&#xff1a; 推理代碼&#xff1a; sky_model self.models["Sky"]outputs["rgb_sky"] sky_model(image_info)outputs["rgb_sky_blend"] outputs["rgb_sky"] * (1.0 - outputs["opa…

從服務器多線程批量下載文件到本地

1、客戶端安裝 aria2 下載地址&#xff1a;aria2 解壓文件&#xff0c;然后將文件目錄添加到系統環境變量Path中&#xff0c;然后打開cmd&#xff0c;輸入&#xff1a;aria2c 文件地址&#xff0c;就可以下載文件了 2、服務端配置nginx文件服務器 server {listen 8080…

C++ | 可變模板參數

1. 為什么需要可變模板參數&#xff1f; 在C11之前&#xff0c;若想實現一個接受任意數量參數的函數&#xff0c;只能依賴va_list等C風格可變參數&#xff0c;但這種方式類型不安全且難以調試。例如printf函數&#xff1a; printf("%d %f %s", 10, 3.14, "hel…

【機器學習】每日一講-樸素貝葉斯公式

文章目錄 **一、樸素貝葉斯公式詳解****1. 貝葉斯定理基礎****2. 從貝葉斯定理到分類任務****3. 特征獨立性假設****4. 條件概率的估計** **二、在AI領域的作用****1. 文本分類與自然語言處理&#xff08;NLP&#xff09;****2. 推薦系統****3. 醫療與生物信息學****4. 實時監控…

AI Agents系列之AI代理的類型

在本文中,我們將探討不同類型的 AI 代理,包括它們的實現、實際應用、優勢和局限性。從簡單反射代理到多代理系統,我們將了解這些模型如何推動自動化、決策制定和智能問題解決。 文章目錄 1. AI代理的類型1.1 簡單反射代理1.1.1 實現**1.1.2 優勢****1.1.3 局限性**1.2 基于…