java算法題,java算法題達到什麼水平

本文目錄一覽:

java算法題

public class Monkey

{

public static void main(String[] args)

{

int sum=0,remain=1;

//每天吃剩的桃子加一個正好是前一天桃子的一半,每天桃子的總數就是前一天剩下桃子的數量

for(int day=9;day=1;day–)

{

sum=(remain+1)*2;

remain=sum;

System.out.println(“第”+day+”天還剩”+remain+”個桃子”);

}

System.out.println(sum);

}

}

Java算法題:判斷並輸出101-200中所有素數,代碼中單等號與雙等號的區別?

這是很基礎的問題

單= 是賦值運算, 把後面的值賦值給前面的參數

雙= 是關係運算, 比較前後兩個參數是否相同

注意如果???處, 用單等, 就是賦值運算, 將ture 賦值 給 flag, 所以if中會一直是true, 也會一直執行if中的代碼

雙== 就是比較了啊, 結果是真 才會執行if中代碼

java 一道算法題,阿里面試的題,我同學給我的,希望有人解答下?

HashMapString, Object ihp = new LinkedHashMapString, Object();

自定義一個類

static class MyMap

{

List[] lists;

public MyMap(List… lists)

{

this.lists = lists;

}

public String toString()

{

if (lists == null || lists.length == 0)

{

return “{}”;

}

StringBuilder sb = new StringBuilder();

sb.append(‘{‘);

int i = 0;

for (List list: lists)

{

sb.append(list);

i++;

if (i == lists.length)

return sb.append(‘}’).toString();

sb.append(“,”);

}

return “{}”;

}

}

ihp.put(“on1”,new MyMap(list2,list1));

ihp.put(“on2”,new MyMap(list4,list3));

ihp.put(“on3”,new MyMap(list5));

ihp.put(“on4”,new MyMap(list6));

System.out.println(ihp.toString());

估計有更好的辦法,最開始想到的是List[],發現打印出來是[[xxx,xxx,xxx],[xx,x,x]]這種結構

一道java算法題提供了正確代碼,不知道是不是我理解錯誤運行結果並不是最大值?

首先理解下題意,關鍵是連續的子數組,比如{1,2,-1} ,連續的子數組包括{1}、{2}、{-1}、{1,2}、{2,-1}、{1,2,-1}

其次是求各子數組和的最大值,上面的算法求最大值分兩部分,循環遍歷所有值

curSum :用於某一個子數組的累加和

curMaxSum:用於記錄歷史最大累加和

上面算法的start和end其實沒用,本意是找出具體子數組,但上面算法部分情況下是無法實現的

@Test

public void test(){

//  int[] num = {1,-2,3,10,-4,7,2,-5};

//int[] num = {1,-2,3,10,-4,10,2,-5};

int[] num = {-1,-2,3,4,-5,-6,-7};

System.out.println(maxSum(num));

}

public int maxSum(int[] num){

int curSum = 0;

int curMaxSum = -99999999;

int finalStart = 0;

int finalEnd = 0;

int start = 0;

for(int i=0;inum.length;i++){

if(curSum=0){

curSum = num[i];

start = i;

}

else{

curSum += num[i];

}

if(curSumcurMaxSum){

finalStart = start;

finalEnd = i;

curMaxSum = curSum;

}

}

for(int i = finalStart;i=finalEnd;i++){

System.out.println(num[i]);

}

return curMaxSum;

}

java 算法題:將下面的字符串按規則拆開,保存進list集合中

用String類的split函數先按中文逗號切分,再按”#”切分,就可以把此字符串前面的字母保存在集合a中,將後面的文字保存在集合b中。具體的Java程序如下:

import java.util.ArrayList;

import java.util.List;

public class CC {

 public static void main(String[] args) {

  String s=”yw#語文,ss#數學,yy#英語,ty#體育”;

  ListString a=new ArrayListString();

  ListString b=new ArrayListString();

  String[]s1=s.split(“,”);

  for(String tmp:s1){

   String[]s2=tmp.split(“#”);

   a.add(s2[0]);

   b.add(s2[1]);

  }

  for(int i=0;ia.size();i++)

   System.out.print(a.get(i)+” “);

  System.out.println();

  for(int i=0;ib.size();i++)

   System.out.print(b.get(i)+” “);

  System.out.println();

 }

}

運行結果:

yw ss yy ty

語文 數學 英語 體育

Java簡單算法問題

初步做了一個出來,但是效率並不是很高,前100個計算速度還可以,但是往後就很慢了。如果什麼時候有空的話可以再看看,先給你代碼吧,不知道能不能幫上你

public class AlisandaNumber {

private static final int MAX_INDEX = 1000; // 可以先把這個常量改為1-6,驗證正確性

public static void main(String[] args) {

int a = 0;

int index = 0;

while(index  MAX_INDEX) {

a += 6; // 每次循環自增6,由題目規律可知A是6的倍數

boolean breakOut = false;

// 最大的約數為此數的平方根,因為如果是兩個平方根相乘的話,剩下的就只有1了

int maxNum = (int) Math.ceil(Math.sqrt(a));

p:

for(int p = 1; p = maxNum; p ++) {

if(a % p != 0) {

continue; // 如果不是約數的話,沒必要考慮,下同

}

// 最大約數為平方根的相反數,原理同上

maxNum = (int) Math.ceil(Math.sqrt(a / p));

for(int q = -1; q = -maxNum; q –) { // q和r必為負數

if(a % q != 0) {

continue;

}

int r = a / (p * q);

int nonZero = p * q + p * r + q * r;

if (nonZero == 0) {

continue;

}

if((a == p * q * r)  (a == (p * q * r) / (nonZero))) {

index ++;

breakOut = true;

break p; // 跳出外層循環

}

}

}

if(breakOut) {

System.out.println(String.format(“第%d個壓力山大數是%d”, index, a));

}

}

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/254946.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:14
下一篇 2024-12-15 12:14

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python實現爬樓梯算法

    本文介紹使用Python實現爬樓梯算法,該算法用於計算一個人爬n級樓梯有多少種不同的方法。 有一樓梯,小明可以一次走一步、兩步或三步。請問小明爬上第 n 級樓梯有多少種不同的爬樓梯…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29

發表回復

登錄後才能評論