当前位置:   article > 正文

洛谷P1459 三值的排序 java实现 Map解决问题_p1459 洛谷

p1459 洛谷
  1. //这道题目的核心思路是受洛谷题解区的一个题解的启发的
  2. //https://www.luogu.org/problemnew/solution/P1459
  3. //然后用自己的java语言中的Map实现的
  4. //思路
  5. //编号: 1 2 3 4 5 6 7 8 9
  6. //输入: 2 2 1 3 3 3 2 3 1
  7. //目标: 1 1 2 2 2 3 3 3 3
  8. //差值: 1 1 -1 1 1 0 -1 0 -2
  9. //只需要让最后所有的差值为0即可
  10. //因此可以计算差值需要交换几次
  11. //又因为数值只可以是1,2,3所以差值只可能是-2,-1,0,1,2
  12. //用ans表示最后的结果
  13. //因此考虑,先让2和-2结合直接变为0,此时ans+=2和-2中较少的那个数的个数
  14. //然后当2不足或者是-2不足时,
  15. //如果-2有剩余,那么一定有多余的1,可以结合,此时交换的次数就等于需要1的个数,也就是-2*个数的绝对值
  16. //即ans+=Math.abs(cha*2),cha=个数差
  17. //如果2剩余同理
  18. //然后ans+=-1和1中个数较少的那一个,因为个数多的就应该是上一步被消耗的,就是最后的结果
  19. import java.util.Arrays;
  20. import java.util.HashMap;
  21. import java.util.Map;
  22. import java.util.Scanner;
  23. public class Main {
  24. public static void main(String[] args) {
  25. Scanner in=new Scanner(System.in);
  26. int n=
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/622350
推荐阅读
相关标签
  

闽ICP备14008679号