剑指offer计划23( 数学简单)---java
2021/9/23 11:12:36
本文主要是介绍剑指offer计划23( 数学简单)---java,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.1、题目1
剑指 Offer 39. 数组中出现次数超过一半的数字
1.2、解法
万能哈希表,数学方法看到我要吐血。。。
1.3、代码
class Solution { public int majorityElement(int[] nums) { HashMap<Integer,Integer> map = new HashMap(); for(int i=0;i<nums.length;i++){ map.put(nums[i],map.getOrDefault(nums[i],0)+1); } for(Map.Entry<Integer,Integer> entry:map.entrySet()){ if(entry.getValue()>nums.length/2){ return entry.getKey(); } } return 0; } }
2.1、题目2
剑指 Offer 66. 构建乘积数组
2.2、解法
老规矩,先判断特殊情况。然后针对赋值。这里是通过两个数组来存每个点的左右两侧积,再到最后将他赋值到res数组中
2.3、代码
class Solution { public int[] constructArr(int[] a) { int len = a.length; if (a == null || len == 0) return a; int []res=new int[len]; int []right = new int [len]; int []left = new int [len]; left[0]=1;right[len-1]=1; for(int i=1;i<len;i++){ left[i]=left[i-1]*a[i-1]; right[len-i-1]=right[len-i]*a[len-i]; } for(int i=0;i<len;i++) res[i]=left[i]*right[i]; return res; } }
这篇关于剑指offer计划23( 数学简单)---java的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-19Token处理入门教程:新手必看指南
- 2024-09-19如何应对被动登出课程的情况:新手必读指南
- 2024-09-19打包优化课程:初学者的必备指南
- 2024-09-19登录鉴权课程:新手入门教程
- 2024-09-19动态菜单项课程:新手入门详解
- 2024-09-19动态路由表课程:新手入门教程
- 2024-09-19动态面包屑课程:入门与实践指南
- 2024-09-19动态权限课程:新手入门教程
- 2024-09-19动态主题处理课程:新手入门教程
- 2024-09-19服务器购买课程:新手入门必学指南