Practice1|1207. 独一无二的出现次数、1365. 有多少小于当前数字的数字、941. 有效的山脉数组

news/2024/7/6 12:37:04

1207. 独一无二的出现次数

1.题目:

给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。

如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。

示例 1:

输入:arr = [1,2,2,1,1,3]
输出:true
解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。
示例 2:

输入:arr = [1,2]
输出:false
示例 3:

输入:arr = [-3,0,1,-3,1,1,1,-3,10,0]
输出:true

2.思路:

数组在hash中的应用(不熟)383赎金信

3.代码:
 public boolean uniqueOccurrences(int[] arr) {
        //数组在哈希法中的应用
        int[] count=new int[2002];
        for(int i=0;i<arr.length;i++){
            count[arr[i]+1000]++;
        }
        boolean[] bool=new boolean[1001];
        for(int i=0;i<count.length;i++){
            if(count[i]>0){
                if(bool[count[i]]==false){
                    bool[count[i]]=true;
                }else{
                    return false;
                }
            }
        }
        return true;
    }

1365. 有多少小于当前数字的数字

1.题目:

给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。

换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。

以数组形式返回答案。

示例 1:

输入:nums = [8,1,2,2,3]
输出:[4,0,1,1,3]
解释: 
对于 nums[0]=8 存在四个比它小的数字:(1,2,2 和 3)。 
对于 nums[1]=1 不存在比它小的数字。
对于 nums[2]=2 存在一个比它小的数字:(1)。 
对于 nums[3]=2 存在一个比它小的数字:(1)。 
对于 nums[4]=3 存在三个比它小的数字:(1,2 和 2)。
示例 2:

输入:nums = [6,5,4,8]
输出:[2,1,0,3]
示例 3:

输入:nums = [7,7,7,7]
输出:[0,0,0,0]

2.思路:

正常解

3.代码:
public int[] smallerNumbersThanCurrent(int[] nums) {
        int[] res=new int[nums.length];
        int count=0;
        for(int i=0;i<nums.length;i++){
            for(int j=0;j<nums.length;j++){
                if(i!=j && nums[i]>nums[j]){
                    count++;
                }
            }
            res[i]=count;
            count=0;
        }
        return res;
    }

941. 有效的山脉数组

1.题目:

给定一个整数数组 arr,如果它是有效的山脉数组就返回 true,否则返回 false。

让我们回顾一下,如果 arr 满足下述条件,那么它是一个山脉数组:

arr.length >= 3
在 0 < i < arr.length - 1 条件下,存在 i 使得:
arr[0] < arr[1] < ... arr[i-1] < arr[i]
arr[i] > arr[i+1] > ... > arr[arr.length - 1]
示例 1:

 输入:arr = [2,1]
输出:false
示例 2:

输入:arr = [3,5,5]
输出:false

2.思路:

双指针

3.代码:
public boolean validMountainArray(int[] arr) {
        if(arr.length<3){
            return false;
        }
        int left=0;
        int right=arr.length-1;
        //注意数组越界问题
        while(left<arr.length-1 && arr[left]<arr[left+1]){
            left++;
        }
        while(right>0 && arr[right]<arr[right-1]){
            right--;
        }
        if(left==right &&left!=0 &&right!=arr.length-1){
            return true;
        }
        return false;
    }


http://lihuaxi.xjx100.cn/news/1384685.html

相关文章

P6207 [USACO06OCT] Cows on Skates G(dfs之回溯不用取消vis标记)

1:坑点&#xff1a; DFS想法&#xff1a;一条路走到黑&#xff0c;不行就返回。 但是&#xff0c;题目只需要我们输出一条路径&#xff0c;所以我们的vis数组不需要取消标记&#xff08;我就是被这个坑了&#xff09; 2:路径存储 up采用stack来储存&#xff0c;这样子每次回…

day35-Image Carousel(图片轮播图简易版)

50 天学习 50 个项目 - HTMLCSS and JavaScript day35-Image Carousel&#xff08;图片轮播图简易版&#xff09; 效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport…

Goby 漏洞发布|Metabase JDBC 远程代码执行漏洞(CVE-2023-38646)

漏洞名称&#xff1a;Metabase JDBC 远程代码执行漏洞&#xff08;CVE-2023-38646&#xff09; English Name&#xff1a;Metabase JDBC Remote Code Execution Vulnerability (CVE-2023-38646) CVSS core: 9.8 影响资产数&#xff1a;66604 漏洞描述&#xff1a; Metabas…

记录浙政钉的消息通知的一次开发实战记录

先忍不住吐槽下钉钉的开发文档&#xff0c;实在是不敢恭维&#xff0c;首先每个术语描述都是不统一的&#xff0c;比如有些地方写“”群聊“”&#xff0c;有些地方写“会话”&#xff0c;有些地方写“钉消息”&#xff0c;总之他们自己想怎么写&#xff0c;怎么写&#xff0c;…

Vue+element Ui的el-select同时获取value和label的方法总结

1.通过ref的形式&#xff08;推荐) <template><div class"root"><el-selectref"optionRef"change"handleChange"v-model"value"placeholder"请选择"style"width: 250px"><el-optionv-for&q…

【Ubuntu18.04安装FileZilla】

Ubuntu18.04安装FileZilla 1 FileZilla简介2 安装方式3 使用方式3.1 连接FTP服务器3.1.1 快速连接3.1.2 通过站点管理器 1 FileZilla简介 FileZilla是自由开源、快速、可信赖的FTP客户端以及服务器端应用&#xff0c;具有多种特色、直观的接口。 特点&#xff1a;可控性、有条…

【Docker】Docker安全性与安全实践(五)

前言&#xff1a; Docker安全性的作用和意义在于确保容器化应用程序和镜像的隔离性、保护数据和系统资源、防止恶意攻击&#xff0c;以及提高应用的整体安全性。 文章目录 1. Docker安全性1.1 隔离性1.2 镜像安全1.3 特权访问1.4 数据保护 2. Docker安全实践2.1 使用官方镜像或…

素描基础知识

素描基础入门 1.基础线条 1.1 握笔姿势及长线条 2.排线 2.1 不同姿势画排线 2.1.1 姿势画排线 2.1.2 用手腕画排线 2.1.3 小拇指画排线 2.1.4 叠加排线 2.1.5交叉排线 2.2 纸张擦法 2.3 排线学习榜样 2.4 四种常见的排线 3、定向连线 4、一点透视 4.1 透视的规律 4.2 焦点透视…