位運算[找出唯一成對的數]

題目來源:藍橋云課

不用輔助儲存空間

?import java.util.Random;public class T_01 {public class Util {public static void swap(int[] arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}public static void print(int[] arr) {for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}System.out.println();}}?public static void main(String[] args) {int n=1001;int[] arr=new int[n];for (int i = 0; i < arr.length-1; i++) {arr[i]=i+1;}// ? ? ?  最后一個是隨機數arr[arr.length-1]=new Random().nextInt(n-1)+1;?// ? ? ?  最后一個數的隨機下標int index=new Random().nextInt(n);Util.swap(arr, index, arr.length-1);Util.print(arr);int x1=0;// ? ? ?  進行位運算for (int i = 1; i <= n-1; i++) {x1=(x1^i);}for (int i = 0; i < n; i++) {x1= (x1^arr[i]);}System.out.println(x1);}}
  • swap 方法:此方法的作用是交換數組 arr 中索引為 ij 的兩個元素。它借助一個臨時變量 temp 來保存其中一個元素的值,進而實現交換操作。

  • print 方法:該方法用于打印數組 arr 中的所有元素,元素之間以空格分隔,打印完所有元素后會換行。

  • arr[arr.length - 1] = new Random().nextInt(n - 1) + 1;:把數組的最后一個元素設置為從 1 到 n - 1 之間的隨機整數。

位運算原理

異或運算(^)具有以下特性:

  • 任何數與 0 異或結果為其本身,即 a ^ 0 = a

  • 任何數與自身異或結果為 0,即 a ^ a = 0

  • 異或運算滿足交換律和結合律,即 a ^ b ^ c = a ^ c ^ b

n=11為例(重復數為2):

【1,2,3,4,5,6,7,2,9,10,8】

?x1=0;for (int i = 1; i <= n-1; i++) {x1=(x1^i);}

x1=0^1^2^3^4^5^6^7^8^9^10;

?for (int i = 0; i < n; i++) {x1= (x1^arr[i]);}

i=0;

x1=0^1^2^3^4^5^6^7^8^9^10^0;

x1=1^2^3^4^5^6^7^8^9^10;

i=1;

x1=1^2^3^4^5^6^7^8^9^10^1;

x1=2^3^4^5^6^7^8^9^10;

i=2;

x1=2^3^4^5^6^7^8^9^10^2;

x1=3^4^5^6^7^8^9^10;

……

i=10

x1=2^8^8;

x1=2;

若不受題目限制:不用輔助儲存空間

int[] con=new int[n];for (int i = 0; i < n; i++) {con[arr[i]]++;}for (int i = 0; i < n; i++) {if(con[i]==2){System.out.println(i);break;}}

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

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

相關文章

簡記_FPGA 硬件最小系統設計

一、FPGA板級設計的五要素 1.1、電源電路 核心電壓&#xff1a;一般為固定值 IO電壓&#xff1a;FPGA的IO分為多個bank&#xff0c;同一個bank的不同IO引腳電壓相同&#xff0c;不同bank的電壓可以不同 輔助電壓&#xff1a;除了核心電壓和IO電壓&#xff0c;FPGA工作所需的…

7.2 控件和組件

版權聲明&#xff1a;本文為博主原創文章&#xff0c;轉載請在顯著位置標明本文出處以及作者網名&#xff0c;未經作者允許不得用于商業目的 C#工具箱位于編輯窗口的左側&#xff0c;它默認內置了大量的控件和組件。控件一般派生于System.Windows.Forms.Control類&#xff0c;顯…

Spring Boot中接口數據字段為?Long?類型時,前端number精度丟失問題解決方案

Spring Boot中接口數據字段為 Long 類型時&#xff0c;前端number精度丟失問題解決方案 在Spring Boot中&#xff0c;當接口數據字段為 Long 類型時&#xff0c;返回頁面的JSON中該字段通常會被序列化為數字類型。 例如&#xff0c;一個Java對象中有一個 Long 類型的屬性 id …

OpenCV第2課 OpenCV的組成結構與圖片/視頻的加載及展示

1.OpenCV 的組成結構 2.OpenCV 的具體模塊 3. 圖像的讀取 4. 視頻的讀取 1.OpenCV 的組成結構 OpenCV 是由很多模塊組成的,這些模塊可以分成很多層: 最底層是基于硬件加速層(HAL)的各種硬件優化。再上一層是opencv_contrib 模塊所包含的OpenCV 由其他開發人員所貢獻的代…

安裝配置Tesseract-OCR

1,下載對應的可執行文件 在Tesseract OCR下載地址Index of /tesseract下載合適的版本安裝包,如下: 點擊安裝包進行安裝: 語言選擇英文: 如果需要識別中文,則可以在安裝過程中勾選下載中文語言包和腳本(也可以按需選擇繁體):

關于墻面涂鴉的視覺檢測與噴涂修復裝置研究(大綱)

公共場所墻面涂鴉視覺檢測與精準噴涂修復裝置研究 融合視覺識別與自動化噴涂的墻面維護解決方案 第一章 緒論 1.1 研究背景與意義 城市形象與秩序維護&#xff1a; 涂鴉對公共環境的影響&#xff08;破壞美觀、傳遞不良信息&#xff09;清除涂鴉的重要性&#xff08;恢復原貌…

圖論 | 98. 所有可達路徑

98. 所有可達路徑 題目鏈接&#xff1a; 98. 所有可達路徑 思路 先創建鄰接矩陣&#xff0c;再深搜寫代碼是需要注意的是acm格式&#xff0c;輸入的格式要轉化為int&#xff0c;輸出要轉化為str&#xff0c;用map&#xff08;&#xff09;實現。 dfs def dfs(grid,node,n,…

MCP+Hologres+LLM 搭建數據分析 Agent

LLM大模型在數據分析領域的挑戰 在數據分析領域&#xff0c;大模型&#xff08;LLM&#xff09;具備強大語言理解能力&#xff0c;NL2SQL等各類智能化工具也極大提升了數據分析人員的分析效率&#xff0c;但仍舊面臨不少挑戰&#xff1a; 傳統 LLM 缺乏實時數據接入能力&…

Categorical分布(分類分布):深度學習中的離散建模利器

Categorical分布&#xff1a;深度學習中的離散建模利器 引言 對于深度學習研究者來說&#xff0c;概率分布是模型設計和優化的基石。在許多生成模型中&#xff0c;如變分自編碼器&#xff08;VAE&#xff09;及其變種VQ-VAE&#xff08;Vector Quantized Variational Autoenc…

Langchain 提示詞(Prompt)

基本用法 1. 基本概念 提示詞模板 是一個字符串模板&#xff0c;其中包含一些占位符&#xff08;通常是 {variable} 形式的&#xff09;&#xff0c;這些占位符可以在運行時被實際值替換。LangChain 提供了多種類型的提示詞模板&#xff0c;以適應不同的使用場景。 2. 主要類…

centos7.9鏡像源及Python引入ssl問題處理

一、鏡像源修改 1. 備份原有的鏡像源配置文件 在修改之前,先備份現有的 CentOS-Base.repo 文件: sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2. 編輯鏡像源配置文件 使用文本編輯器(如 nano 或 vi)打開 /etc/yum.repos.d/Ce…

Java高頻面試之集合-17

hello啊&#xff0c;各位觀眾姥爺們&#xff01;&#xff01;&#xff01;本baby今天來報道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面試官&#xff1a;JDK 8 對 HashMap 主要做了哪些優化呢&#xff1f;為什么要這么做&#xff1f; JDK 8 對 HashMap 的主要優化及原因 JDK…

計算機二級:函數基礎題

函數基礎題 第一題 rinput("請輸入半徑&#xff1a;") c3.1415926*r*2 print("{:.0f}".format(c))輸出&#xff1a; Type Error第二題 a7 b2 print(a%2)輸出 1第三題 ab4 def my_ab(ab,xy):abpow(ab,xy)print(ab,end"\n") my_ab(ab,2)prin…

C# 屬性(Property)?詳解

在 C# 中&#xff0c;?屬性&#xff08;Property&#xff09;? 是類或結構體中的成員&#xff0c;用于封裝對私有字段&#xff08;稱為 ?backing field?&#xff09;的訪問&#xff0c;提供更靈活和安全的數據操作方式。屬性通過 get 和 set 訪問器控制對數據的讀寫&#x…

iPhone 16如何翻譯文檔?文檔翻譯技巧、軟件推薦

在全球化的今天&#xff0c;跨語言交流變得越來越頻繁&#xff0c;而文檔翻譯更是成為許多人日常工作和學習中的重要需求。作為蘋果公司最新推出的旗艦機型&#xff0c;iPhone 16憑借其強大的硬件性能和豐富的軟件生態&#xff0c;為我們提供了多種便捷的文檔翻譯方式&#xff…

HRP方法全文總結與模型流程解析

背景與問題 傳統二次優化方法&#xff08;如Markowitz的CLA&#xff09;存在三大問題&#xff1a; 不穩定性&#xff1a;協方差矩陣的高條件數導致逆矩陣計算誤差放大&#xff0c;權重劇烈波動。 集中性&#xff1a;優化結果過度集中于少數資產&#xff0c;易受個體風險沖擊。…

解決項目一直在構建中的問題:以 IntelliJ IDEA 為例提高共享堆內存

在使用 IntelliJ IDEA 時&#xff0c;開發者可能會遇到項目長期處于構建狀態的問題。這種情況將嚴重影響開發效率。通常&#xff0c;這種問題的一個常見原因是構建進程所分配的堆內存不足。本文將以 IntelliJ IDEA 為背景&#xff0c;介紹如何通過提高共享堆內存來解決此問題&a…

金橙子刪除打標對象

注意在使用金橙子根據對象名稱刪除對象時要注意,每刪除一個對象,所有對象的索引都將改變。 如果你是用for去遍歷,再根據索引獲取打標對象名稱的話就會出現漏的掉的問題。 改進方法 1,將要刪除的對象找到后,統一存放在一個集合中。再根據這個要刪除的對象集合再一個個去遍…

JVM常見概念之條件移動

問題 當我們有分支頻率數據時&#xff0c;有什么有趣的技巧可以做嗎&#xff1f;什么是條件移動&#xff1f; 基礎知識 如果您需要在來自一個分支的兩個結果之間進行選擇&#xff0c;那么您可以在 ISA 級別做兩件不同的事情。 首先&#xff0c;你可以創建一個分支&#xff…

MANISKILL3:GPU 并行機器人模擬和渲染,用于通用的具身AI

本文介紹了一種名為ManiSkill3的機器人仿真系統&#xff0c;它采用了GPU并行化技術&#xff0c;并針對通用性進行了優化。該系統支持多種視覺輸入方式和異構模擬&#xff0c;能夠在物理場景中進行高效的仿真和渲染&#xff0c;達到比其他平臺更快的速度和更少的GPU內存使用量。…