任意给定一整数数组,求两个元素之差的最大值和数组中出现次数最多的数
2009-11-19 13:16
567 查看
要求:不允许使用库函数及外部库,不允许使用现成的排序算法和哈希算法函数
1、两个元素之差的最大值
private static void GetMaxMin(int[] arrys)
{
//int[] arrys = new int[] { 3, 5, 1, 6, 9, 8, 4, 7, 2 };
int max = arrys[0];
int min = arrys[0];
for (int i = 0; i < arrys.Length; i++)
{
if (arrys[i] > max)
max = arrys[i];
if (arrys[i] < min)
min = arrys[i];
}
Console.WriteLine("Max为:{0},Min为{1},差为{2}", max, min, max - min);
}
//2、数组中出现次数最多的数
/// <summary>
/// 得到去重复的数组
/// </summary>
/// <param name="arrys"></param>
/// <returns></returns>
private static int[] GetNewArry(int[] arrys)
{
for (int i = 0; i < arrys.Length; i++)
{
for (int j = i + 1; j < arrys.Length; j++)
{
if (arrys[i] == arrys[j])
arrys[i] = 0;
}
}
List<int> list = new List<int>();
for (int k = 0; k < arrys.Length; k++)
{
if (arrys[k] != 0)
list.Add(arrys[k]);
}
int[] arryNew = new int[list.Count];
for (int n = 0; n < list.Count; n++)
{
arryNew[n] = list[n];
}
return arryNew;
}
/// <summary>
/// 得到出现最多次数的数
/// </summary>
/// <param name="arrysOld"></param>
/// <param name="arrysNew"></param>
/// <returns></returns>
private static int GetMaxCountNum(int[] arrysOld, int[] arrysNew)
{
int count = GetMaxCount(arrysOld, arrysNew);
int tmp = 0;
for (int i = 0; i < arrysNew.Length; i++)
{
for (int j = 0; j < arrysOld.Length; j++)
{
if (arrysNew[i] == arrysOld[j])
{
tmp++;
}
}
if (count == tmp)
{
return arrysNew[i];
}
tmp = 0;
}
return 0;
}
/// <summary>
/// 得到出现最多的次数
/// </summary>
/// <param name="arrysOld"></param>
/// <param name="arrysNew"></param>
/// <returns></returns>
private static int GetMaxCount(int[] arrysOld, int[] arrysNew)
{
int maxCount = 0;
int count = 0;//次数
//int[] arrysCount = new int[arrysNew.Length];
for (int i = 0; i < arrysNew.Length; i++)
{
for (int j = 0; j < arrysOld.Length; j++)
{
if (arrysNew[i] == arrysOld[j])
{
count++;
}
}
//arrysCount[i] = count;
if (count > maxCount)
{
maxCount = count;
}
count = 0;
}
return maxCount;
}
/// <summary>
/// 得到数组中的最大数
/// </summary>
/// <param name="arrys"></param>
/// <returns></returns>
private static int GetMaxNum(int[] arrys)
{
int max = arrys[0];
for (int i = 0; i < arrys.Length; i++)
{
if (arrys[i] > max)
max = arrys[i];
}
return max;
}
/// <summary>
/// 得到数组中零出现的次数
/// </summary>
/// <param name="arrys"></param>
/// <returns></returns>
private static int GetMaxCountIsZero(int[] arrys)
{
int count = 0;
for (int i = 0; i < arrys.Length; i++)
{
if (arrys[i] == 0)
count++;
}
return count;
}
/// <summary>
/// 克隆一个整型数组
/// </summary>
/// <param name="arrys"></param>
/// <returns></returns>
private static int[] CloneArry(int[] arrys)
{
int[] arrysNew = new int[arrys.Length];
for (int i = 0; i < arrys.Length; i++)
{
arrysNew[i] = arrys[i];
}
return arrysNew;
}
在招聘网上看到的题目,随便坐了下,可能还有bug,望大家指出!!
1、两个元素之差的最大值
private static void GetMaxMin(int[] arrys)
{
//int[] arrys = new int[] { 3, 5, 1, 6, 9, 8, 4, 7, 2 };
int max = arrys[0];
int min = arrys[0];
for (int i = 0; i < arrys.Length; i++)
{
if (arrys[i] > max)
max = arrys[i];
if (arrys[i] < min)
min = arrys[i];
}
Console.WriteLine("Max为:{0},Min为{1},差为{2}", max, min, max - min);
}
//2、数组中出现次数最多的数
/// <summary>
/// 得到去重复的数组
/// </summary>
/// <param name="arrys"></param>
/// <returns></returns>
private static int[] GetNewArry(int[] arrys)
{
for (int i = 0; i < arrys.Length; i++)
{
for (int j = i + 1; j < arrys.Length; j++)
{
if (arrys[i] == arrys[j])
arrys[i] = 0;
}
}
List<int> list = new List<int>();
for (int k = 0; k < arrys.Length; k++)
{
if (arrys[k] != 0)
list.Add(arrys[k]);
}
int[] arryNew = new int[list.Count];
for (int n = 0; n < list.Count; n++)
{
arryNew[n] = list[n];
}
return arryNew;
}
/// <summary>
/// 得到出现最多次数的数
/// </summary>
/// <param name="arrysOld"></param>
/// <param name="arrysNew"></param>
/// <returns></returns>
private static int GetMaxCountNum(int[] arrysOld, int[] arrysNew)
{
int count = GetMaxCount(arrysOld, arrysNew);
int tmp = 0;
for (int i = 0; i < arrysNew.Length; i++)
{
for (int j = 0; j < arrysOld.Length; j++)
{
if (arrysNew[i] == arrysOld[j])
{
tmp++;
}
}
if (count == tmp)
{
return arrysNew[i];
}
tmp = 0;
}
return 0;
}
/// <summary>
/// 得到出现最多的次数
/// </summary>
/// <param name="arrysOld"></param>
/// <param name="arrysNew"></param>
/// <returns></returns>
private static int GetMaxCount(int[] arrysOld, int[] arrysNew)
{
int maxCount = 0;
int count = 0;//次数
//int[] arrysCount = new int[arrysNew.Length];
for (int i = 0; i < arrysNew.Length; i++)
{
for (int j = 0; j < arrysOld.Length; j++)
{
if (arrysNew[i] == arrysOld[j])
{
count++;
}
}
//arrysCount[i] = count;
if (count > maxCount)
{
maxCount = count;
}
count = 0;
}
return maxCount;
}
/// <summary>
/// 得到数组中的最大数
/// </summary>
/// <param name="arrys"></param>
/// <returns></returns>
private static int GetMaxNum(int[] arrys)
{
int max = arrys[0];
for (int i = 0; i < arrys.Length; i++)
{
if (arrys[i] > max)
max = arrys[i];
}
return max;
}
/// <summary>
/// 得到数组中零出现的次数
/// </summary>
/// <param name="arrys"></param>
/// <returns></returns>
private static int GetMaxCountIsZero(int[] arrys)
{
int count = 0;
for (int i = 0; i < arrys.Length; i++)
{
if (arrys[i] == 0)
count++;
}
return count;
}
/// <summary>
/// 克隆一个整型数组
/// </summary>
/// <param name="arrys"></param>
/// <returns></returns>
private static int[] CloneArry(int[] arrys)
{
int[] arrysNew = new int[arrys.Length];
for (int i = 0; i < arrys.Length; i++)
{
arrysNew[i] = arrys[i];
}
return arrysNew;
}
在招聘网上看到的题目,随便坐了下,可能还有bug,望大家指出!!
相关文章推荐
- 给定一个整数数组,其中元素的取值范围为0到10000,求其中出现次数最多的数
- 给定一个整数数组,其中元素的取值范围为0到10000,求其中出现次数最多的数
- 说你有一个数组,其中第i个元素是第i天给定股票的价格。设计一个算法来找到最大的利润,最多可以完成两个交易。
- java找出一个数组中出现次数最多且最大的那个元素
- 程序员面试题目总结--数组(二)【二分查找、找出给定数字出现次数、两个有序整型数组交集、找出数组中唯一的重复元素、判断数组中的数值是否连续相邻】
- hdu 1806 Frequent values(给定一个非降序数组,求任意区间内出现次数最多的数的次数)
- 求一个数组中重复元素出现最多值,最大的元素及出现次数,次数相同时,取最大值,优先考虑次数
- 数组A中任意两个相邻元素大小相差1,现给定这样的数组A和目标整数t,找出t在数组A中的位置。
- 求一个数组中重复元素出现最多值,最大的元素及出现次数,次数相同时,取最大值,优先考虑次数
- 程序员面试题目总结--数组(三)【旋转数组的最小数字、旋转数组中查找指定数、两个排序数组所有元素中间值、数组中重复次数最多的数、数组中出现次数超过一半的数】
- 在排序数组中找给定数字出现的次数和任意整数有几种分解方法
- asp.net 实现获取一个集合数组中出现次数最多的元素
- js 算出Array数组中出现次数最多的元素
- LINQ 获取当前数组中出现次数最多的元素
- 给定一个整数数组,两个数字的返回索引将它们加到一个特定的目标中。 您可以假设每个输入都只有一个解决方案,并且您可能不会两次使用相同的元素。
- Java实现给定任一字符串,长度为任意,要求找出其出现次数最多的字符及其出现次数。
- JS判断数组或者一个字符串中出现次数最多的元素及其出现的次数
- *数组-10. 求整数序列中出现次数最多的数
- 给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到 output[] 数组 最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到 output[] 数组中间两个位置偏右的那个位置上
- 《数组-规划》 有两个序列a,b,大小都为n,序列元素的值任意整数,无序;要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小