
题目不让用sort方法,所以先用冒泡排序做了一下:
- class Solution {
- public void sortColors(int[] nums) {
- for(int i=0; i
1; i++){ - for(int j=0; j
1; j++){ - if(nums[j] > nums[j+1]){
- int temp = nums[j];
- nums[j] = nums[j+1];
- nums[j+1] = temp;
- }
- }
- }
- }
- }
时间复杂度有点高,于是看了下解题区,因为数组中的数字必为0、1或者2,所以可以用两次遍历将0和1分别放在数组的前部分和中部分。 java代码如下:
- class Solution {
- public void sortColors(int[] nums) {
- int cur = 0;//单指针
- for(int i=0; i
- if(nums[i] == 0){
- nums[i] = nums[cur];
- nums[cur++] = 0;
- }
- }
- for(int i=cur; i
- if(nums[i] == 1){
- nums[i] = nums[cur];
- nums[cur++] = 1;
- }
- }
- }
- }
-
相关阅读:
「HarmonyOS」下拉刷新组件使用详情
【解决】自定义conda环境安装位置,三种解决方法
图文详解!带你认识 ancert:硬件兼容性标准实现工具!| 龙蜥技术
nginx之configure解析以及模板简介
基于Echarts实现可视化数据大屏车联网平台数据可视化
设计模式简介
【技术干货】如何通过 DP 实现支持经典蓝牙的联网单品设备与 App 配对
离线量化(后量化)算法研究-----脉络梳理
R语言和医学统计学(11):球形检验
linux内核整体架构
-
原文地址:https://blog.csdn.net/m0_61028090/article/details/133807141