当前位置:首页 » 网页前端 » 华为前端笔试数组排序
扩展阅读
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]);
}