zoukankan      html  css  js  c++  java
  • Day 51

    第203题:

    删除链表中等于给定值 val 的所有节点。(来自LeetCode)

    1、平常删除链表元素时只需要将p的next指向p的next的next,当删除元素不在链表头时可以这样操作;

      但是当链表头部存在一个或多个需要删除的元素时,如果直接删除会很复杂,所以就可以设置一个哨兵节点来解决这个问题,保证链表一直都有头;

      设置一个哨兵节点ess,ess.next指向头,然后使用两个指针pre和cur分别指向ess和ess.next;

      然后对cur指向的链表元素进行判断,做出操作,最终返回结果。

      

    第204题:

    统计所有小于非负整数 的质数的数量。(来自LeetCode)

     1、质数是只能对1或者它本身整除的数;

      利用一个布尔数组来存储这个数是否为质数,false代表是质数;

      遍历数组下标,如果此元素是false,res++;否则就将这个元素设为true,而且下标是这个下标倍数的数组元素也设为true(因为肯定不是质数);

      比如说求20以内质数的个数,首先0,1不是质数.2是第一个质数,然后把20以内所有2的倍数划去;

      2后面紧跟的数即为下一个质数3,然后把3所有的倍数划去;

      3后面紧跟的数即为下一个质数5,再把5所有的倍数划去.以此类推。

       

    第206题:

    反转一个单链表。(来自LeetCode)

     

    1、将pre指向null,cur指向head,然后在交换的时候需要保存cur.next,因为cur还需要向后移动,所以需要直到cur的后继;

      这样循环最终得出结果。

      

  • 相关阅读:
    P1474 货币系统 Money Systems(完全背包求填充方案数)
    Codeforces 877C Slava and tanks(思维)
    883H
    Codeforces 873B
    POJ 1733 Parity game(带权并查集)
    POJ 2387 Til the Cows Come Home(dijkstra裸题)
    POJ 1984 Navigation Nightmare(二维带权并查集)
    POJ 2912 Rochambeau(种类并查集+枚举)
    POJ 1456 Supermarket(贪心+并查集)
    POJ 2492 A Bug's Life(带权并查集)
  • 原文地址:https://www.cnblogs.com/liang-yi-/p/13551378.html
Copyright © 2011-2022 走看看