IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 《九国列车》(学习报告)《leecode零基础指南》(第7天) ——排序,对排序的处理及题解和错题的总结 -> 正文阅读

[数据结构与算法]《九国列车》(学习报告)《leecode零基础指南》(第7天) ——排序,对排序的处理及题解和错题的总结

1.leetcode.912--排序数组

我们先来看一种不对的做法

int *sortArry(int *nums,int numsSize,int *returnSize)//函数的*int型,返回的是数组的首地址
{
int *jie=(int *)malloc( sizeof(int) * numsSize);//动态开辟内存空间,搞一个长度为numsSize的数组,首地址为Jie
int i=0,j=0,t=0;
//使用冒泡将数组升序排列
for(i=0;i<numsSize;i++)
{
for(j=0;j<numsSize;j++)
{
if(nums[j]>nums[j+1])
{
t=nums[j];
nums[j]=nums[j+1];
nums[j+1]=t;
}
}
}
//填充数组元素到Jie中
for(i=0;i<numsSize;i++)
{
jie[i]=nums[i];
}
*returnSize=numsSize;//老样子,我们还要告诉调用者数组的长度,一般用一个参数*returnSize实现
return jie;//返回首地址
}

  • 提交后会显示超出时间限制,最后几个案例有成千上万个数值,速率过慢?
  • 插入,冒泡,选择都不可以
  • 在这里我边水题边学,去学习了一下希尔排序
int *sortArry(int *nums,int numsSize,int *returnSize)
{
int i=0,j=0,t=0,k,m;
for(m=numsSize/2;m>0;m=m/2)//设置增量,一般可以理解为分组的数据的间隔,第一次一般都是长度的一半。后面每一次都是原来增量的1/2
{
for(k=m;k<numsSize;k++)
{
t=nums[k];//将插入的数存给t
j=k-m;
while(j>=0&&t<nums[j])//若t比前面的数字小,前面的数据前移
{
nums[j+m]=nums[j];
j=j-m;
}
nums[j+m]=t;//注意这里和j=j-k和j=j-m的联系,需要思考
}
}
*returnSize=numsSize;//老规矩,我们一般用一个参数来实现告诉调用者数组的长度
return nums;
}

  • 2.leetcode.169--多数元素
  • 下面来看一种错误的做法
  • ?

?

int jie(int *nums,int numsSize)
{
int a=0,i=0,j=0;
for(i=0;i<numsSize;i++)
{
int a=0;
for(j=0;i<numsSize;j++)
{
if(nums[i]==nums[j]
{
a++;//判断重复次数
}
}
if(a>numsSize/2)
{
return nums[i];//因为重复次数大于numsSize/2的数只有一个,所以可以直接返回一个

}
}
return 0;
}

3.leetcode.217--存在重复元素

4.leetcode.164--最大间距

?

  • 这道题如果不是英雄哥推出的打卡题,我看到它为困难的难度会直接被劝退,但是去写了一下发现萌新都是可以写的

?下面我们来看代码

class solution{
public int jie(int [] nums)
{
Arrays.sort(nums);
int max=0;//初始化一个值,用来和后面得到相邻元素的差值进行比较,如果max小的话,将其赋给max
int i=0,j=0;//初始化一个j用来储存差值
if(nums.length<2)//题目要求,按要求来即可
return 0;
else
{
for(i=1;i<nums.length;i++)
{
j=nums[i]-nums[i-1];
if(max<j)
max=j;
}
return max;
}

}
}

  • 总结:以上英雄哥推出的打卡题都有许多相似之处,非常适合像只有语言基础的萌新去练习和总结,遇到不会的可以去翻看视频,做好笔记,边水题边学。?
  • 今天是九日集训———雪国列车leetcode萌新零基础打卡指南第7天,不管再忙,明天也要打卡和总结哦!
  • 天道酬勤,勤能补拙,萌新们,加油!

?

?

?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-07 12:17:52  更:2021-12-07 12:18:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 14:36:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码