• CS61b homework3 打卡


    part1:代码:注意最后不能直接写成ints=template,因为ints是在method中新建立的指向传入数组的引用,ints=template只是改变了ints的指向,而对传入的数组未改变,所以应该用循环对ints数组逐一赋值(这一问题lecture里面记得有专门讲过,看的时候没太注意听,编程的时候才发现都是坑啊2333)。

    public static void smoosh(int[] ints) {
                int[]template=new int[ints.length];
                Arrays.fill(template, -1);
                int num=1;
                template[0]=ints[0];
                for(int i=1;i<ints.length;i++){
                    if(ints[i]!=template[num-1])
                        {
                        template[num]=ints[i];
                        num++;
                        }
                 }
                for(int i=0;i<ints.length;i++)
                    ints[i]=template[i];
              }

    part2 代码:注意比较SListNode.item时需要用object.equals()的方法,而不能直接用==,==只能用于primitive type比较值,用于Object可以理解为比较的是类似C++里面的地址吧,

    一开始没注意这个问题直接写到currentNode.item==currentNode.next.item,列表根本就没变化,因为两个item的地址始终都不一样。

     public void squish() {
              SListNode currentNode=head;
             while(size>1&&currentNode.next!=null){
                 if(currentNode.item.equals(currentNode.next.item)){
                     currentNode.next=currentNode.next.next;
                     size--;
                 }
                 else
                     currentNode=currentNode.next;
             }
          }

    part 3:唯一一个没有改动的部分,感觉这个比前两个还是简单一些哈。

     public void twin() {
              if(isEmpty())
                  return;
              SListNode currentNode=head;
              for(int i=1;i<=this.size;i++){
                  SListNode newest=new SListNode(currentNode.item,currentNode.next);
                  currentNode.next=newest;
                  currentNode=currentNode.next.next;
              }
              size=size*2;
            
          }

    运行结果:

  • 相关阅读:

    c#常用的基础概念
    Visual Studio2010+SOS.dll调试入门 摘自 http://www.cnblogs.com/luminji/archive/2011/01/27/1946217.html
    优化数据库之前的10个问题
    js数组清空的两种方式
    我的资源(网站, 工具)
    iis使用十大原则
    SQL2005分页存储过程
    温故而知新:Delegate,Action,Func,匿名方法,匿名委托,事件
    无法获得数据库 'model' 上的排他锁 网上搜索结果 IT
  • 原文地址:https://www.cnblogs.com/lyz1995/p/7154014.html
Copyright © 2020-2023  润新知