當前位置:首頁 » 網頁前端 » 華為前端筆試數組排序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

華為前端筆試數組排序

發布時間: 2022-05-18 11:39:56

Ⅰ 一個數組,0和非0的整數混排,排序後,0都在數組前端,非0的順序不變在後端

public class test{
public static void main(String[] args){
int [] nums = {2,5,8,9,0,4,6,8,7,3};
// n代表你的數組中已經有幾位是0了,再有0,應該放到哪裡
for(int i=0 , n=0;i<nums.length;i++){
if(nums[i] == 0){
int tem = nums[n];
nums[n] = nums[i];
nums[i] = tem;
n++;
}
}
}
}

Ⅱ 前端題,數組arr包含若干不相等的整數,嘗試對數組升序排列,並過濾掉所有偶數

letarr=[1,3,6,8,0,4];

arr.sort().filter(item=>item%2!=0)

運行結果

Ⅲ 請教華為的C語言筆試題:int (*ptr) (),則一維數組的名字是ptr

不存在一般的問題。ptr就是一個函數指針。
它可以指向任意類似如下的函數;
int fname(//任意參數)//fname任意。

Ⅳ 前端筆試題目求解答!!求寫出具體代碼

其實很簡單,就是一些js判斷就可以實現了,可以先用冒泡排序對它們進行排序,然後將前100名塞進一個數組裡面,當然還有排序的時間和用戶的id等,然後在排行榜按順序輸出array[0 - 100] ,用戶訪問的時候判斷一下用戶id是否在這個數組,如果在輸出數組的內容。如果不在然將 101 - 9999塞進另外一個數組,再查詢用戶id在不在這個數組,如果在,輸出用戶id 對應的排名,如果不在那就是直接輸出未上榜

Ⅳ 假設數組A[n]的n個元素中有多個零元素,設計一個演算法,將A中所有的非零元素依次移到A的前端

1.建立數組/鏈表,初始化數據
2. 兩個指針,一個頭指針,初值為null或(數組下標=-1), 一個尾指針指向元素尾部
頭指針指示可交換頭部位置(就是 這個指針前面都是交換好的非0元素不用在動了)
尾指針指向待處理元素
3.處理步驟 1. 判斷尾指針元素是否非0 , 為真: 頭指針+1, 頭尾元素交換, 繼續判斷交換後的尾指針是否非0; 為真: 頭指針+1, 頭尾元素交換,繼續判斷交換後的尾指針是否非0(重復上面的);為假: 頭指針不動,尾指針+1
4,終結條件, 頭尾指針位置相等
當然這個不是優化演算法,可以先判斷頭指針,如果頭指針為非0元素可以直接+1,而不要再交換到尾部在判斷在交換回去....

Ⅵ 有哪些經典的 Web 前端或者 JavaScript 面試筆試題

一、不定項選擇題 (每題3分,共30分)
1. 聲明一個對象,給它加上name屬性和show方法顯示其name值,以下代碼中正確的是( D )
A. var obj = [name:"zhangsan",show:function(){alert(name);}];
B. var obj = {name:」zhangsan」,show:」alert(this.name)」};
C. var obj = {name:」zhangsan」,show:function(){alert(name);}};
D. var obj = {name:」zhangsan」,show:function(){alert(this.name);}};
2. 以下關於Array數組對象的說法不正確的是( CD )
A. 對數組里數據的排序可以用sort函數,如果排序效果非預期,可以給sort函數加一個排序函數的參數
B. reverse用於對數組數據的倒序排列
C. 向數組的最後位置加一個新元素,可以用pop方法
D. unshift方法用於向數組刪除第一個元素
3. 要將頁面的狀態欄中顯示「已經選中該文本框」,下列JavaScript語句正確的是( A )
A. window.status=」已經選中該文本框」
B. document.status=」已經選中該文本框」
C. window.screen=」已經選中該文本框」
D. document.screen=」已經選中該文本框」
4. 點擊頁面的按鈕,使之打開一個新窗口,載入一個網頁,以下JavaScript代碼中可行的是( AD )
A. <input type=」button」 value=」new」
onclick=」open(『new.html』, 『_blank』)」/>
B. <input type=」button」 value=」new」
onclick=」window.location=』new.html』;」/>
C. <input type=」button」 value=」new」
onclick=」location.assign(『new.html』);」/>
D. <form target=」_blank」action=」new.html」>
<inputtype=」submit」 value=」new」/>
</form>
5. 使用JavaScript向網頁中輸出<h1>hello</h1>,以下代碼中可行的是( BD )
A. <scripttype=」text/javascript」>
document.write(<h1>hello</h1>);
</script>
B. <scripttype=」text/javascript」>
document.write(「<h1>hello</h1>」);
</script>
C. <scripttype=」text/javascript」>
<h1>hello</h1>
</script>

Ⅶ 一道華為面試題

完全混亂01串,這個查找的最高效的方法就是一個一個核對了,O(n),平均查找長度是n/2,
其他的最快的,應該沒可能了。。。。

Ⅷ 求大神指教啊,急用!!! 寫一個函數,對整型數組進行排序,要求函數原型為void sort(int

對中間數組的排序,你可以再寫一個函數,這樣就好看多了,
#include<stdio.h>
#include<malloc.h>


voidsort(intlength,int*data)
{
int*pOdd=(int*)malloc(sizeof(int)*length);
int*pEven=(int*)malloc(sizeof(int)*length);
intnOddNum=0;
intnEvenNum=0;
for(inti=0;i<length;i++)
{
if(data[i]%2==0)
{
*(pEven+nEvenNum)=data[i];
nEvenNum++;
}
else
{
*(pOdd+nOddNum)=data[i];
nOddNum++;
}
}
intnDataNum=0;
for(inti=0;i<nOddNum;i++)
{
intk=i;
intntmp=*(pOdd+i);
for(intj=i+1;j<nOddNum;j++)
{
if(ntmp<*(pOdd+j))
{
ntmp=*(pOdd+j);
k=j;
}
}
if(i!=k)
{
ntmp=*(pOdd+i);
*(pOdd+i)=*(pOdd+k);
*(pOdd+k)=ntmp;
}
*(data+nDataNum)=*(pOdd+i);
nDataNum++;
}
for(inti=0;i<nEvenNum;i++)
{
intk=i;
intntmp=*(pEven+i);
for(intj=i+1;j<nEvenNum;j++)
{
if(ntmp<*(pEven+j))
{
ntmp=*(pEven+j);
k=j;
}
}
if(i!=k)
{
ntmp=*(pEven+i);
*(pEven+i)=*(pEven+k);
*(pEven+k)=ntmp;
}
*(data+nDataNum)=*(pEven+i);
nDataNum++;
}
free(pOdd);
free(pEven);
}

intmain()
{
intdata[]={1,6,4,7,2,5,9,8,0,3};
sort(10,data);
for(inti=0;i<10;i++)
{
printf("%d",data[i]);
}
printf(" ");

return0;
}

Ⅸ 今天參加了華為的面試,被一個演算法題水了如下:

根據要求修改了,復雜度為O(n),沒有引入額外的數組:)
#include <stdio.h>
#define N 7
void main(){
int a[N],step,temp;
printf("輸入%d個整數:\n",N);
for(int l=0;l<N;l++)
scanf("%d",&a[l]);
printf("輸入步長:\n");
scanf("%d",&step);
step=step%N;
int k=0,n=0;
for(int i=step;i<N+step;i++,k++){
if(step)
k=k%step;
n=i%N;
temp=a[n];
a[n]=a[k];
a[k]=temp;
}
printf("輸出移位後的數組:\n");
for(int m=0;m<N;m++)
printf("a[%d]=%d\n",m,a[m]);
}