Partition List -- LeetCode
这是一道链表操作的题目,要求把小于x的元素按顺序放到链表前面。我们仍然是使用链表最经常使用的双指针大法,一个指向当前小于x的最后一个元素,一个进行往前扫描。假设元素大于x,那么继续前进,否则,要把元素移到前面,并更新第一个指针。这里有一个小细节,就是假设不须要移动(也就是已经是接在小于x的最后元素的后面了),那么仅仅须要继续前进就可以。算法时间复杂度是O(n),空间仅仅须要几个辅助变量,是O(1)。代码例如以下:
public ListNode partition(ListNode head, int x) {if(head == null)return null;ListNode helper = new ListNode(0);helper.next = head;ListNode walker = helper;ListNode runner = helper;while(runner.next!=null){if(runner.next.val<x){if(walker!=runner){ListNode next = runner.next.next;runner.next.next = walker.next;walker.next = runner.next;runner.next = next;}elserunner = runner.next;walker = walker.next;}else{runner = runner.next;}}return helper.next;
}
这道题思路比較清晰,只是还是有点细节的,第一次写可能不easy全然写对,能够练习练习。
Partition List -- LeetCode相关推荐
- LeetCode 解题报告索引
最近在准备找工作的算法题,刷刷LeetCode,以下是我的解题报告索引,每一题几乎都有详细的说明,供各位码农参考.根据我自己做的进度持续更新中...... ...
- Partition算法详解
partition算法有着非常重要的应用,这个算法的思想虽然简单,但具体实现的细节却比较多,今天我重点复习了这个算法,本文记录我对这个算法的理解. 文章目录 Partition算法解析 二分Parti ...
- 【leetcode】86. Partition List
题目如下: Given a linked list and a value x, partition it such that all nodes less than x come before no ...
- LeetCode Partition Equal Subset Sum(动态规划)
问题:给出一个数组,问是否可以分成两个子集,其和相等 思路:首先要求数组和是偶数,然后用动态规划来求. 用dp(i,j)表示第i步时和为j是否可行,则有dp(i,j)= dp(i-1,j) || dp ...
- LeetCode MySQL 585. 2016年的投资(窗口函数over(partition by xx))
文章目录 1. 题目 2. 解题 1. 题目 写一个查询语句,将 2016 年 (TIV_2016) 所有成功投资的金额加起来,保留 2 位小数. 对于一个投保人,他在 2016 年成功投资的条件是: ...
- 【技巧】LeetCode 86. Partition List
LeetCode 86. Partition List Solution1: 我的答案,时间复杂度O(n)O(n)O(n),空间复杂度O(n)O(n)O(n) /*** Definition for ...
- [LeetCode]561. Array Partition I (数组分区 1)
561. Array Partition I Given an array of 2n integers, your task is to group these integers into n pa ...
- Leetcode PHP题解--D14 561. Array Partition I
561. Array Partition I 题目链接 561. Array Partition I 题目分析 本题给了一个数组,要求将数组分为n个只有2个元素的一对. 使得每对数字中最小的数加起来的 ...
- LeetCode Partition List(链表分段)
题意:给出一个单链表,有参数的数x.将比x小的数排在比x大的数据后面 思路:类似于快速排序的分段处理.为了简单操作,在单链表前加个头结点.注意,在处理时,如果当前处理结点与被替换结点为同一结点结,两个 ...
最新文章
- 【系统架构师修炼之道】(13):操作系统基础知识——进程基础知识
- jQuery+php+ajax实现无刷新上传文件功能
- 【机器学习基础】机器学习算法中分类知识总结!
- mobsdk线上崩溃事故报告_重大事故!IO问题引发线上20台机器同时崩溃
- 翼方健数邓振:“DRG+AI”助力实现医院精细化管理
- linux确定刻录机目录,在Linux操作系统下使用DVD刻录机(转)
- 【AI视野·今日CV 计算机视觉论文速览 第240期】Thu, 4 Nov 2021
- 【转】javascript代码混淆和压缩
- openmeetings(开源视频会议系统)的详细安装步骤 (windows版)
- 车辆模型-动力学模型(Dynamics Model)
- 皮克公式:点阵中多边形的面积公式
- 【Linux系统】第6节 Linux系统压缩与解压缩文件
- 【卫星影像三维重建】完整的卫星立体重建
- python爬虫笔记---1.13---第一篇
- 遥感影像语义分割论文笔记(一)FarSeg CVPR2020
- 蓝桥杯——瓷砖样式(第八届决赛)
- 发光二极管二极管引脚_LCD? 发光二极管? 等离子体? HDTV技术入门指南
- QUIC不可靠的数据报扩展(An Unreliable Datagram Extension to QUIC)
- system.exe,alien32.exe,ftsKetNt.7ps,SysKetNt.Sys, iexpe.exe等1
- iOS开发-技术知识盘点总结(二)
热门文章
- IDEA卡顿解决方法
- hutool BigExcelWriter 下的autoSizeColumnAll异常问题
- DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016错误解决方法
- Web方式预览Office/Word/Excel/pdf文件解决方案
- VS2013、VS2015中,新建项目没有看到解决方案的问题(已解决)
- 用Java获取当前工作目录
- malloc和calloc之间的区别?
- Scala 2.8馆藏图书馆是“历史上最长的遗书”吗? [关闭]
- Win11如何开启聚焦功能?Win11开启聚焦功能的方法
- shiro身份验证失败捕获的异常对应信息