当前位置: 首页 > article >正文

算法知识点————双指针【删除重复元素】【反转链表】

删除重复元素

题目://给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数
思路:
快指针遍历数组
慢指针记录保留的

int removedup(vector<int>& nums){
   int len = nums.size();
   int fast =1;//快指针遍历数组
   int slow =1; //慢指针记录保留的
    if(len ==0){//参数校验
      return 0;
    }
    while(fast < len){
     	if(nums[fast] != nums[fast-1]){
        nums[slow]=nums[fast];
        slow++;
      }
       fast++;
    }
   return slow;
}
反转链表

1、先用c记录b一会的位置,
2、然后b指向a节点
3、然后ab后往后移动一个,
循环此过程
在这里插入图片描述

/翻转链表(迭代版本) 
struct ListNode{
  int val;
  ListNode *next;
  ListNode(int x): val(x),next(NULL){}
};
ListNode* ReverseList(ListNode* head){
  if(!head || !head->next) return head; //只有一个结点或者节点为空
  auto a = head;//自动匹配类型
  auto b = head->next;
  while(b){
    auto c = b->next;//记录一下b一会的位置
    b->next = a;
    a = b;b = c;
  }
  head->next = NULL;
  return a; 
}

///反转链表和上面一样效果
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode* prev = nullptr;
        while (head) {
            ListNode* next = head->next;
            head->next = prev;
            prev = head;
            head = next;
        }
        return prev;
    }
};

http://www.kler.cn/a/300196.html

相关文章:

  • HTML `<head>` 元素详解
  • Node.js NativeAddon 构建工具:node-gyp 安装与配置完全指南
  • gitlab使用多数据库
  • three.js实现裸眼双目平行立体视觉
  • RabbitMQ实现延迟消息发送——实战篇
  • flutter 使用google_mlkit_image_labeling做图片识别
  • Azure AI Search 中的二进制量化:优化存储和加快搜索速度
  • 简洁直白的github快速入门教程(云主机)
  • elementui Cascader 级联选择器的使用总结
  • 你真的懂吗系列——串口通信
  • uniapp ios sticky定位,内部 u-tabs(包含scroll-view)消失问题
  • 【QT】基础入门学习
  • 如何使用elementui实现一个根据页面进度实时增长/前进的进度条
  • DBA实战手记,技术书的黑神话
  • Codeforces Round 971 (Div. 4)——C题题解
  • 最直接显示 ubuntu 版本号的命令
  • 6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)
  • idea向git上推送被拒绝 push to master was rejected
  • 代码随想录27期|Python|Day52|​动态规划|​647. 回文子串|516. 最长回文子序列
  • react js 路由 Router
  • 类和对象(中)
  • 哈喽GPT-4o,现代程序员提高编码能力的正确打开方式
  • NVIDIA AI Workbench 让 Windows 上的 GPU 使用更加简便
  • 基于Spring搭建SpringMvc框架
  • pptpd配置文件/etc/pptpd.conf详解
  • 数据库中的主键和外键分别是什么意思?