当前位置: 首页 > news >正文

Day38 | 1365. 有多少小于当前数字的数字、941. 有效的山脉数组、1207. 独一无二的出现次数、283. 移动零、189. 轮转数组

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

题目链接:1365. 有多少小、于当前数字的数字 - 力扣(LeetCode)

题目难度:简单

代码:

class Solution {
    public int[] smallerNumbersThanCurrent(int[] nums) {
        Map<Integer,Integer> map=new HashMap<>();
        int[] res=Arrays.copyOf(nums,nums.length);
        Arrays.sort(res);
        for(int i=0;i<res.length;i++){
            if(!map.containsKey(res[i]))
                map.put(res[i],i);
        }
        for(int i=0;i<nums.length;i++){
            res[i]=map.get(nums[i]);
        }
        return res;
    }
}

941. 有效的山脉数组

题目链接:941. 有效的山脉数组 - 力扣(LeetCode)

题目难度:简单

代码:

class Solution {
    public boolean validMountainArray(int[] arr) {
        if(arr.length<3) return false;
        int left=0;
        int right=arr.length-1;
        while(left+1<arr.length&&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;
    }
}

1207. 独一无二的出现次数

题目链接:1207. 独一无二的出现次数 - 力扣(LeetCode)

题目难度:简单

代码:

class Solution {
    public boolean uniqueOccurrences(int[] arr) {
        int[] count=new int[2001];
        for(int i=0;i<arr.length;i++){
            count[arr[i]+1000]++;
        }
        boolean[] flag=new boolean[1002];
        for(int i=0;i<=2000;i++){
            if(count[i]>0){
                if(flag[count[i]]==false)
                    flag[count[i]]=true;
                else
                    return false;
            }
        }
        return true;
    }
}

283. 移动零

题目链接:283. 移动零 - 力扣(LeetCode)

题目难度:简单

代码:

class Solution {
    public void moveZeroes(int[] nums) {
        int slow=0;
        for(int fast=0;fast<nums.length;fast++){
            if(nums[fast]!=0)
                nums[slow++]=nums[fast];
        }
        for(int j=slow;j<nums.length;j++){
            nums[j]=0;
        }
    }
}

189. 轮转数组

题目链接:189. 轮转数组 - 力扣(LeetCode)

题目难度:中等

代码:

class Solution {
    public void reverse(int[] nums,int start,int end){
        for(int i=start,j=end;i<j;i++,j--){
            int temp=nums[i];
            nums[i]=nums[j];
            nums[j]=temp;
        }
    }
    public void rotate(int[] nums, int k) {
        int n=nums.length;
        k%=n;
        reverse(nums,0,n-k-1);
        reverse(nums,n-k,n-1);
        reverse(nums,0,n-1);
    }
}

相关文章:

  • shell脚本一键安装docker+docker-compose,支持x86_64、arm64双架构
  • 桑福德·韦尔策划美国捷运公司收购南美银行案例分析
  • 数组子序列比较的SIMD优化
  • 字典树与01trie
  • 数值分析作业插值法2
  • CD18.【C++ Dev】类和对象(9)(声明和定义分离的写法以及代码复用)
  • php webshell免杀
  • Hive问题记录(1)
  • SingleMod
  • inline 配置全局参数变量
  • 深入解析 Spring Framework 5.1.8.RELEASE 的源码目录结构
  • 驱动编写-DS18B20温度传感器
  • 远场分量(平面波角谱)与倏逝波
  • 搜索旋转排序数组
  • 初见MyBatis
  • 区间端点(java)(贪心问题————区间问题)
  • 游戏中的碰撞检测算法
  • 吐血整理:Air8201如何使用LuatOS进行电源管理功能!
  • 线程控制与线程库
  • ideaIU-2023.2.5.exe install (IntelliJ_IDEA_IU_2023.2.5)
  • 微应用和微网站的区别/希爱力双效片副作用
  • 网站建设域名的选取有讲究/seo在线优化网站
  • 找国外公司做网站/google play谷歌商店
  • 夏天做哪些网站致富/长沙百度推广运营公司
  • WordPress设置两个域名/北京网站建设东轩seo
  • 做公司网站应准备什么材料/游戏优化是什么意思?