1. 程式人生 > >將一個數組分割成儘量均衡的2個數組(java)

將一個數組分割成儘量均衡的2個數組(java)

要考慮到2種情況

1、原始陣列長度為偶數---------則,分成的2個數組長度一樣

2、原始陣列長度為奇數--------則,2個數組中,有一個數組多1個

完整程式碼如下:

package text;


public class Text {


public static void main(String[] args) {


//第一步:建立一個示例陣列,長度假設為101
int[] first0=new int[101];
//第二步:依次將1-101放入陣列
for(int i=0;i<first0.length;i++){
first0[i]=i+1;
}
//第三步:獲取示例陣列長度
int FLength=first0.length;
//第四步:假設分成的兩個陣列長度分別為half1和half2
int half1=1;
int half2=1;
//判斷:假如示例陣列長度為奇數,則後兩個陣列中第一個陣列多一個
if(FLength%2!=0){
half1=(FLength+1)/2;
half2=half1-1;
}
//判斷:假如示例陣列元素個數為偶數,則結果的2個數組長度一致
if(FLength%2==0){
half1=FLength/2;
half2=half1;
}
//第五步:新建結果陣列
int left[]=new int[half1];
int right[]=new int[half2];

//第六步:分不同情況,將原始示例陣列的前半部分和後半部分分別裝入結果陣列中
if(FLength%2!=0){
for(int i=0;i<half1;i++){
left[i]=first0[i];
}
for(int i=half1,j=0;i<first0.length;i++,j++){
right[j]=first0[i];
}
}else{
for(int i=0;i<half1;i++){
left[i]=first0[i];
}
for(int i=half1,j=0;i<first0.length;i++,j++){
right[j]=first0[i];
}
}

//第七部:輸出結果陣列,檢查是否與預期結果一致
for(int i=0;i<left.length;i++){
System.out.print(left[i]+",");
}
System.out.println();
for(int i=0;i<right.length;i++){
System.out.print(right[i]+",");
}




}


}

相關推薦

個數分割儘量均衡2個數java

要考慮到2種情況 1、原始陣列長度為偶數---------則,分成的2個數組長度一樣 2、原始陣列長度為奇數--------則,2個數組中,有一個數組多1個 完整程式碼如下: package text; public class Text {public static

王志201771010130《面向物件程式設計java》第八週學習總結

  理論學習知識: 介面  Java為了克服單繼承的缺點,Java使用了介面, 一個類可以實現一個或多個介面。         在Java程式設計語言中,介面不是類,而是對類 的一組需求描述,由常量和一組抽象方法組成。    

王志 201771010130《面向物件程式設計java》第十四周學習總結

(1) 掌握GUI佈局管理器用法; (2) 掌握各類Java Swing元件用途及常用API; 2、實驗內容和步驟 實驗1: 匯入第12章示例程式,測試程式並進行組內討論。 測試程式1 l 在elipse IDE中執行教材479頁程式12-1,結合執行結果理解程式; l&nbs

演算法——把二元查詢樹轉變排序的雙向連結串列JAVA

輸入一棵二元查詢樹,將該二元查詢樹轉換成一個排序的雙向連結串列。 要求不能建立任何新的結點,只調整指標的指向。 轉換成雙向連結串列 1=2=3=4=5=6=7=8=9=10=11=12=13=14=15。 程式碼如下 public class B

java 一個ip地址分割個數

代碼 一個數 數組 java str 測試 服務器 都是 其他 這個問題以前真還沒註意,好像記得分割過規律的字符串,但是不是像IP這樣是以"."為分割規律字符,而是其他的。 今天又用到類似功能,代碼寫好了也沒測試,直接上傳服務器,但是就是會報錯,之後看了日誌是ip分割部分

Java段逗號分割的字串轉換個數

    public static void main(String[] args) {  String str="a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";  String[] strArray=null;  System.out.printl

C++讀取CSV檔案,並逗號分隔符檔案分割N個數

#include <stdio.h> #include <string.h> // #include <windows.h> #define MAXLINE 256 struct student {     char stuName[10

MySQL資料庫,列資料組合一行,並以逗號分割

MySQL的資料庫的GROUP_CONCAT函式 這一列的資料是這樣的: 執行這段SQL: SELECT GROUP_CONCAT(CONCAT('\'',keyword,'\'')) FROM  sp_goodimgsinfo where  goodid='7

MySQL資料庫,列資料組合一行,並以逗號分割,GROUP_CONCAT

MySQL資料庫的GROUP_CONCAT函式很厲害呀! 這一列的資料是這樣的: 執行這段SQL: SELECT GROUP_CONCAT(CONCAT('\'',ENIN_NAME,'\''))

個數中的重複元素保留一個其他的清零Java

本題目比較簡單,但有小錯誤可能會犯,流程圖及程式碼如下: Created with Raphaël 2.1.0開始int[]a={}int i=0i<a.lengthint j=0j&l

HREE.JS 根據起始幀一個AnimationClip物件分割多個AnimationClip

THREE.JS 根據起始幀將一個AnimationClip物件分割成多個AnimationClip 因為從3dsMax裡面匯出的模型只支援一個動畫,如果需要對多個動畫進行單獨控制的話就必須將其切割成多個AnimationClip物件,其實原理跟陣列擷取是一樣的。

深度學習圖片過大--------------實現張圖片裁剪二圖片併合並

import os import cv2 import numpy as np import tqdm #cv2讀取一律寫成預設模式 #path = 'D:\\program\\fast-neural-style-tensorflow-master\\C\\pic\\' path = 'D:\\pr

java一個JFrame介面分割多部分,每部分新增獨立背景圖片

現在,我要完成的目標是:建立了一個JFrame介面,我要分成兩部分,操作時兩部分完全獨立,互不影響,已完成的效果如下: 可以看到,我做的左邊是操作介面,右邊是顯示介面,左邊的背景我沒加,方法和右邊的是一樣的。 具體方法是這樣的,首先我建造兩個容器JPanel物件, 然後呼叫分割

如何維陣列轉換與考慮南天陣列元素?

我有一個像下面的列表,我想將這個元素分解成n維基於NaN值的禮物。 輸入: [nan 0.1 0.4 0.6 nan 0.8 0.7 0.9 nan 0.3 0.6 0.8] 輸出: [[0.1 0.4 0.6] [0.8 0.7 0.9] [0.3 0.6 0.8]] 如何實現

個數的最大k個數java

問題描述:求一個數組的最大k個數,如,{1,5,8,9,11,2,3}的最大三個數應該是,8,9,11 問題分析:     1.解法一:最直觀的做法是將陣列從大到小排序,然後選出其中最大的K個數,但是這樣的解法,複雜度是O(logn*n),但是有時候並不需要排序,用簡單的選

4.2.3 程式設計題《筆錢換算1分、2分和5分的硬幣組合》

將一筆錢(大於8分,小於1元,精確到分)換算成1分、2分和5分的硬幣組合。輸入金額,問有幾種換算方法?要求每種硬幣至少有一枚。【輸入形式】從鍵盤輸入一個正整數n。【輸入輸出樣例1】(下劃線部分表示輸入)Input money: 10count=2【樣例說明】輸入提示符後要加一

DB2列資料拼接一個字串(轉自百度知道)

有表XWCMDOCTAG通過SELECT TAGNAME FROM XWCMDOCTAG where DOCID = 1 and TAGGINGNUM > 0語句查出如下結果集 TAGNAME 中國 美國 英國 韓國 請問怎麼把這一列的值

python——張影象分割為九張

附:python3.6.4+sublime Text安裝及配置點選開啟連結這個編譯器真是相見恨晚啊啊啊啊啊from PIL import Image import sys def fill_image

SQLSqlserver中如何列資料拼接一個字串

建立表值函式:create function [dbo].[GetAssessmentCity]( @ryear varchar(4), --年份 @rmonth varchar(2) --月份 ) returns @GetCity TABLE(id varchar(20

oracle 列資料轉1行資料

select wm_concat(name) name from user;--10g寫法 select listagg(name,',') within group (order by name)