web算法题:删除排序数组中的重复项

简介: 1.删除排序数组中的重复项描述

1.删除排序数组中的重复项

描述

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

例如: 给定数组 nums = [1,1,2]

返回 2

测试样例

输入:[1,1,2] 期望输出:2

第一种思路:

直接利用js特定函数进行删除,不过要注意如果两数相等时候,i的值不用变化,如果不相等,i的值才向前一位

代码如下:

/**

  • @param arr Array
  • @return Number

*/

var Solution = function(arr){

for(var i=1;i<=arr.length;){
if(arr[i]===arr[i-1]){
        arr.splice(i,1)
    }else{
        i++
    }
}
return arr.length

};

第二种思路:

比较简单,但是有点难想,第一个元素如果和后面那一个一样只记一个即count++,最后用总长度减去count

例如:[1,1,2,2,3,3],经过运算后count的值等于3,总长度等于6,6-3=3就是我们所要的结果

代码如下:

/**

  • @param arr Array
  • @return Number

*/

var Solution = function(arr){

var count=0
var a=arr.length
for(var j=0;j<a-1;j++)
    {
if(arr[j]===arr[j+1])
        {
            count++
        }
    }
return a-count

};

2.贷款计算

分析:这道题本身不难,但是考察阅读能力,值得一做

题目描述

针对等额本金还款模式的客户,写一个程序按顺序输入贷款总额(单位为万元)、月利率、贷款总月数,输出第一个月客户还款金额(单位为元,取整数)。

等额本金计算公式如下:

每月还款金额= (贷款本金/ 还款总月数)+(本金 - 已归还本金累计额)×每月利率

输入

依次输入贷款总额(整数,单位:万元)、月利率(浮点数)、贷款总月数(整数)

输出

月还款金额(取整数,单位:元)

样例输入

500 0.004 360

样例输出

33888

代码如下:

include <stdio.h>

int main(void)

{

int a,b;
double l;
scanf("%d%lf%d",&a,&l,&b);
printf("%d",(int)(((1.0*a/b)+a*l)*10000));
return 0;

}

3.总结一下c语言输出格式吧

(1)换行输出n;

(2)数字8进制输出%o;16进制%x,如果要带前缀的话就多加一个#,如:%#o

(3)浮点数保留小数 %.xf ,这个x就是你要保留的小数位数

(4)占位大小的话就是 %4f ,简单来说就是写在小数点前面。

(5)左右对齐, %-4f 就是左对齐,不写负号就默认右对齐

目录
相关文章
|
1月前
|
算法
Leetcode 初级算法 --- 数组篇
Leetcode 初级算法 --- 数组篇
38 0
|
13天前
|
搜索推荐 算法 C语言
【排序算法】八大排序(上)(c语言实现)(附源码)
本文介绍了四种常见的排序算法:冒泡排序、选择排序、插入排序和希尔排序。通过具体的代码实现和测试数据,详细解释了每种算法的工作原理和性能特点。冒泡排序通过不断交换相邻元素来排序,选择排序通过选择最小元素进行交换,插入排序通过逐步插入元素到已排序部分,而希尔排序则是插入排序的改进版,通过预排序使数据更接近有序,从而提高效率。文章最后总结了这四种算法的空间和时间复杂度,以及它们的稳定性。
56 8
|
13天前
|
搜索推荐 算法 C语言
【排序算法】八大排序(下)(c语言实现)(附源码)
本文继续学习并实现了八大排序算法中的后四种:堆排序、快速排序、归并排序和计数排序。详细介绍了每种排序算法的原理、步骤和代码实现,并通过测试数据展示了它们的性能表现。堆排序利用堆的特性进行排序,快速排序通过递归和多种划分方法实现高效排序,归并排序通过分治法将问题分解后再合并,计数排序则通过统计每个元素的出现次数实现非比较排序。最后,文章还对比了这些排序算法在处理一百万个整形数据时的运行时间,帮助读者了解不同算法的优劣。
46 7
|
1月前
|
算法 程序员 索引
数据结构与算法学习七:栈、数组模拟栈、单链表模拟栈、栈应用实例 实现 综合计算器
栈的基本概念、应用场景以及如何使用数组和单链表模拟栈,并展示了如何利用栈和中缀表达式实现一个综合计算器。
31 1
数据结构与算法学习七:栈、数组模拟栈、单链表模拟栈、栈应用实例 实现 综合计算器
|
1月前
|
搜索推荐 Shell
解析排序算法:十大排序方法的工作原理与性能比较
解析排序算法:十大排序方法的工作原理与性能比较
52 9
|
1月前
|
算法 搜索推荐 Java
数据结构与算法学习十三:基数排序,以空间换时间的稳定式排序,速度很快。
基数排序是一种稳定的排序算法,通过将数字按位数切割并分配到不同的桶中,以空间换时间的方式实现快速排序,但占用内存较大,不适合含有负数的数组。
24 0
数据结构与算法学习十三:基数排序,以空间换时间的稳定式排序,速度很快。
|
1月前
|
存储 算法 定位技术
数据结构与算法学习二、稀疏数组与队列,数组模拟队列,模拟环形队列
这篇文章主要介绍了稀疏数组和队列的概念、应用实例以及如何使用数组模拟队列和环形队列的实现方法。
21 0
数据结构与算法学习二、稀疏数组与队列,数组模拟队列,模拟环形队列
|
1月前
|
算法
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
31 0
|
1月前
|
算法
❤️算法笔记❤️-(每日一刷-26、删除有序数组的重复项)
❤️算法笔记❤️-(每日一刷-26、删除有序数组的重复项)
23 0
|
1月前
|
存储 算法 搜索推荐
算法进阶之路:Python 归并排序深度剖析,让数据排序变得艺术起来!
算法进阶之路:Python 归并排序深度剖析,让数据排序变得艺术起来!
72 0

热门文章

最新文章

下一篇
无影云桌面