zoukankan      html  css  js  c++  java
  • Algs4-1.1.28删除重复元素

    1.1.28(原问题)删除重复元素。修改BinarySearch类中的测试用例来删去排序之后白名单中所有重复元素。
    对问题的调整:标记一维数组中非递减有序整数中重复的数。设有序数>=0。这个问题可以有两种理解:a)每个数只出现一次,例如:1,2,2,3,4,5 去重后得到:1,2,3,4,5
    b)重复的数字全部删除,例如去重后得到:1,3,4,5。

    a)实现思路:数组索引从头移至数组倒数第二个,当前数组索引元素值与下一元素值进行比较,相同时将当前元素值标记成标记值。
    for(int i=0;i<ArrayOfSorted.length-2;i++)
          {
              if (ArrayOfSorted[i]==ArrayOfStored[i+1]) ArraryOfSorted[i]=-1;
          }

    b)在a思路的基础上增加规则:当前元素与下一个元素不同并且当前元素与前一个元素值相同时那么当前元素标记成标记值。当前元素是倒数第二个元素并且与最后一个元素相同,那么将最后一个元素标记成标记值。
    boolean IsRepeart=false;
          for(int i=0;i<ArrayOfSorted.length-2;i++)
          {
              if (ArrayOfSorted[i]==ArrayOfStored[i+1])
              {
                  ArraryOfSorted[i]=-1;
                  IsRepeart=true;
                  if (i==ArrayOfStored.length-2) ArrayOfStored[i+1]=-1;
              }
              else
              {
                  if (IsRepeart) ArrayOfStored[i]=-1;
                  IsRepeart=false;
              }
          }
  • 相关阅读:
    android监控来电显示
    android 选择本地图片并预览
    解决android http请求带中文参数会乱码(url编码)
    android连接webservice是cookies和session保持方法
    eclipse中android自动补全/提示卡机或假死
    JS中创建类得几种方式
    AJAX的简单实例应用
    JavaScript中的eval函数的用法
    JSON 入门指南
    JS中关于clientWidth、offsetWidth、scrollWidth
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9848669.html
Copyright © 2011-2022 走看看