一個很容易被坑的點(找出最大最小值並交換)
其實程式要寫出來,並不難。只是想走捷徑,就容易誤入歧途。題目如下:
輸入陣列,最大的與第一個元素交換,最小的與最後一個元素交換,輸出陣列。 最開始的程式碼如下:
public class Classic35_1 { public static void main(String[] args){ int[] a = {10,17,23,876,3,67,93,3,32,7,3,23,435}; int max = 0; int min = 0; int temp; // 找到最大最小的位置 for(int i = 0;i<a.length;i++){ if(a[i]>a[max]) max = i; if(a[i]<a[min]) min = i; } // 交換 temp=a[max]; a[max]=a[0]; a[0]=temp; temp=a[min]; a[min]=a[a.length-1]; a[a.length-1]=temp; // 輸出 for(int x : a) System.out.print(x+" "); } }
乍一看確實沒有問題,但是當最小最大位置為特殊位置時候,這個程式就不能正常運行了,即最大的元素在最後或者最小的元素在開頭,例如這組資料:1,17,23,876,3,67,93,3,32,7,3,23,435,如果先交換最大值,再交換最小值,那麼得到的結果就是435,17,23,1,3,67,93,3,32,7,3,23,876,這是完全錯誤的。 對於這種臨界條件考慮欠妥,導致第一個程式有問題,這樣還不如使用最原始的方法,如下:
public class Classic35 { public static void main(String[] args){ int[] a = {1,17,23,876,3,67,93,3,32,7,3,23,435}; int max = 0; int min = 0; int temp; // 找到最大的位置 for(int i = 0;i<a.length;i++){ if(a[i]>a[max]) max = i; } // 交換 temp=a[max]; a[max]=a[0]; a[0]=temp; // 找到最小的位置 for(int i = 0;i<a.length;i++){ if(a[i]<a[min]) min = i; } // 交換 temp=a[min]; a[min]=a[a.length-1]; a[a.length-1]=temp; // 輸出 for(int x : a) System.out.print(x+" "); } }
相關推薦
一個很容易被坑的點(找出最大最小值並交換)
其實程式要寫出來,並不難。只是想走捷徑,就容易誤入歧途。題目如下: 輸入陣列,最大的與第一個元素交換,最小的與最後一個元素交換,輸出陣列。 最開始的程式碼如下: public class Classic35_1 { public static void mai
E - Period HDU - 1358 (找出字串的最小週期)(解釋題意 並且數學邏輯方法解題)
For each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we want to know whether the
LeetCode:78. Subsets(找出一個數組中所有的子集)
Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The solution set must not contain dup
LeetCode:155. Min Stack(找出棧中最小的那個值)
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time. push(x) -- Push element x onto stack. pop()
LeetCode:53. Maximum Subarray(找出陣列中和最大的陣列)
Given an integer array nums, find the contiguous subarray (containing at least one number) which has the l
LeetCode:438. Find All Anagrams in a String(找出相同的子串的下標)
Given a string s and a non-empty string p, find all the start indices of p's anagrams in s. Strings consists of l
PHP封裝一個通用的CURL類方法(設定、獲取請求頭響應頭並處理)
通用的一個CURL類方法,設定請求頭、獲取響應頭等! 包括將格式處理成陣列格式,方便直接輸出 /** * 傳送https post請求,也支援http請求,包括header請求 * @param string $url 請求域名 * @
vue + Echarts 填坑記(Echarts資料量大,導致瀏覽器卡頓)
最近使用vue + Echarts 實現vue專案的資料視覺化功能的時候,發現隨著元件的增多,元件裡Echarts繪圖的增多,頁面操作越來越卡頓,點選資料比較大的元件時,Echarts繪圖渲染頁面的速度倒是挺快,但是當我點選切換其他元件統計圖時,出現了讓人難以忍受的卡頓,有
element ui 庫中 表單部分 一個很容易忽略的坑!
mod 希望 如果 pro mode 問題 -m form data 如果在使用element-ui1.4.* 版本中的表單時,發現某些字段綁定不了值,或者checkbox在你綁定後一點就全選了或者全部選,又或者表單驗證時候有些字段沒動靜,那麽十有八九是: 1、el-for
中國人,很容易被利用的一個民族
在這裡,首先我要表達的是對地震災區的受難同胞表示沉痛的哀悼! 大家都知道,08年的中國是多災多難的一年,我們先後經歷了暴雪,騷亂,疾病,鐵路事故,再加上如今的四川大地震。我們能做的,就是盡我們的微薄之力,積少成多,幫助受災的同胞儘早的重建家園,恢復生活 目前,世界各地都在為中
LeetCode:5. Longest Palindromic Substring(找出一個字串中最大的子迴文串)
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of sis 1000. Example 1: Input
求一個矩陣中的馬鞍點(c語言實現)
資料結構中的求一個矩陣的馬鞍點 請編寫一個完整的程式,如果矩陣A中存在這樣的一個元素A[i,j]滿足條件A[i,j]是第i行的值最小的元素,且又是第j列中最大的元素,則稱之為該矩陣的一個馬鞍點。 程式碼如下: #include<stdio.h> #d
找優雅點(原點在圓心的圓上的整數點)
package Day31; //圓的方程:x^2+y^2=r^2 //由於預設y=sqrt(r^2-x^2)是double型別 //在判斷y是不是整數 import java.util.*; public class Test { /** * @param
SEO新手最容易被坑的13個誤區
容易 esc it培訓 nbsp words 經驗 block 崗位 想想 對於大部分做SEO優化推廣工作的新手來說,由於缺少一定的經驗和知識,容易進入SEO誤區往往會導致事倍功半。這對網站甚至SEO推廣工作都會造成一定不同程度的影響,嚴重的網站被K或者放棄SEO優化工作
python(dict字典相關知識以及小例子:生成一個列表,存放100個隨機整數,找出出現次數最多的數字)
一、什麼是字典? #字典的使用 #子字典是一個容器類,可以用來儲存資料 #列表儲存資料特點:1、有序的 2、每一個都有一個索引,通過索引可以對資料進行查詢,修改,刪除 #字典儲存資料: key:v
C++ 給定一個長度為N的陣列,找出一個最長的單調自增子序列(不一定連續,但是順序不能亂)輸出最長子序列的長度及對應的子序列
Evelyn QQ: 1809335179 給定一個長度為N的陣列,找出一個最長的單調自增子序列(不一定連續,但是順序不能亂)輸出最長子序列的長度及對應的子序列 #include<iostrea
scrapy的一些容易忽視的點(模擬登陸,傳遞item等)
信息 pan pytho 完成 xtra author back book 多少 scrapy爬蟲註意事項 item數據只有最後一條 item字段傳遞後錯誤,混亂 對一個頁面要進行兩種或多種不同的解析 xpath中contains的使用 提取不在標簽內的文本內容 使用cs
【轉】淺談一個網頁打開的全過程(涉及DNS、CDN、Nginx負載均衡等)
位置 filters 產生 多種方法 tps windows cnblogs 這就是 廣東 1、概要 從用戶在瀏覽器輸入域名開始,到web頁面加載完畢,這是一個說復雜不復雜,說簡單不簡單的過程,下文暫且把這個過程稱作網頁加載過程。下面我將依靠自己的經驗,總結一下整個過程
The kth great number multiset應用(找第k大值)
for begin urn mes etc when ++ multi size The kth great number Xiao Ming and Xiao Bao are playing a simple Numbers game. In a round Xiao
c程序設計 8.15寫幾個函數:①輸個職工的姓名和職工號;②按職工號由小到大順序排序,姓名順序也隨之調整;③要求輸入一個職工號,用折半法找出該職工的姓名,從主函數輸入要查找的職工號,輸出該職工
xmx ebr ckey ros lbp loj ase vfk cu2 8.15寫幾個函數:①輸個職工的姓名和職工號;②按職工號由小到大順序排序,姓名順序也隨之調整;③要求輸入一個職工號,用折半法找出該職工的姓名, 從主函數輸入要查找的職工號,輸出該職工。 寫的時候為