目录
1、找出强数对的最大异或值 – 暴力
2、高访问员工 – 哈希表 + 模拟
3、最大化数组末位元素的最少操作次数 – 思维 + 贪心
1、找出强数对的最大异或值 – 暴力
找出强数对的最大异或值 I
class Solution {
public int maximumStrongPairXor(int[] a) {
int n=a.length,max=0;
for(int i=0;i
2、高访问员工 – 哈希表 + 模拟
高访问员工
思路:
名字存其下所有时间(换算成分钟数),然后进行排序
另每个时间+59=限制时间,向该时间后查找,如果出现2个小于限制时间,则将该名字存入答案并跳出遍历下一个名字
class Solution {
public List findHighAccessEmployees(List> a) {
Map> mp=new HashMap();
List res=new ArrayList();
for(int i=0;i t=mp.getOrDefault(name,new ArrayList());
t.add(trans(time));
mp.put(name,t);
}
for(Map.Entry> x:mp.entrySet())
{
List t=x.getValue();
String name=x.getKey();
Collections.sort(t);
System.out.println(name+" "+t);
boolean f=false;
for(int i=0;i
3、最大化数组末位元素的最少操作次数 – 思维 + 贪心
2934.最大化数组末位元素的最少操作次数
思路:
只有两种情况:
- 交换最后一位数
- 不交换最后一位数
对这两种情况,再遍历【0~n-2】序号的数i
- 如果若nums1[i]>nums1[n−1]或nums2[i]服务器托管网>nums2[n−1],则交换nums1[i]和 nums2[i]
- 若交换后仍有nums1[i]>nums1[n−1] 或nums2[i]>nums2[n−1],则当前情况无解
class Solution {
public int minOperations(int[] nums1, int[] nums2) {
int n=nums1.length;
return Math.min(f(nums1[n-1],nums2[n-1],nums1,nums2),1+f(nums2[n-1],nums1[n-1],nums1,nums2));
}
public int f(int last1,int last2,int[] a,int[] b)
{
int res=0;
for(int i=0;ilast1||b[i]>last2)
{
if(b[i]>last1||a[服务器托管网i]>last2) //如果交换后 仍不满足条件,则后面无论怎么换都存在数组内元素大于末尾元素,返回-1
return -1;
res++;
}
}
return res;
}
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net