75. 颜色分类/583. 两个字符串的删除操作

75. 颜色分类

  • 相关标签: 排序 数组 双指针


/*
r, w, b [0 .... n-1] arr[n]
说白了就是个排序 
但是 排序最快也是 nlogn
O(n) 级别的话 
应该就是 双指针了 

这边 r, w ,b  可以用三指针
0 《 1 《 2
p0
p1
p2

p2  p1  p0 初始状态 

p1 移动 
    遇到0 需要和 P2 进行交换 这样就保证了 p1 经过的位置前面  都 是 0 p2++, p1++ (应为p1, p2 是同一起点, P1 先走, 所有P2 只可能小于1 == 0, 所以可以p1++)
    遇到1  不变 
    遇到2 需要和 P0 交换 这样 p1 进过的 2 都变大 P1 后面qule p0--, (p1 不能++,因为p0 swap 过来的数  可能是 任何数)

po, p2 终止 
*/


void swap(int *a, int *b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}


void sortColors(int* nums, int numsSize){
    
    int p0, p1, p2;
    p0 = numsSize -1;
    p1 = p2 = 0;            
    
    while(p1 <= p0) {
        
        if(nums[p1] == 0) {
            swap(&nums[p1], &nums[p2]);
            p2++;
            p1++;
        } else if (nums[p1] == 2) {
            swap(&nums[p1], &nums[p0]);
            p0--;
        } else {
            p1++;
        }
    }
    
}



583. 两个字符串的删除操作

  • 相关标签: 字符串 (实际上是动归)


/*
这不就是最长公共子序列嘛。,。

if word1[i] == word2[j] 
    dp[i+1][j+1] = dp[i][j] + 1
else 
    max(dp[i+1][j], dp[i][j+1])

*/

#define BUFLEN 501
#define MAX(x,y) (x > y ? x : y)
int minDistance(char * word1, char * word2){
    
    
    int dp[BUFLEN][BUFLEN] = {0};
    
    for (int i = 0; i < strlen(word1); i++) {
        for (int j = 0; j < strlen(word2); j++) {
             if(word1[i] == word2[j]) {
                 dp[i+1][j+1] = dp[i][j] + 1;
             } else {
                 dp[i+1][j+1] = MAX(dp[i+1][j], dp[i][j+1]);
             }
        }
    }
    
    int longcommsubseq = dp[strlen(word1)][strlen(word2)];
    return strlen(word1) + strlen(word2) - 2 *longcommsubseq;

}


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,275评论 0 4
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,395评论 0 3
  •   引用类型的值(对象)是引用类型的一个实例。   在 ECMAscript 中,引用类型是一种数据结构,用于将数...
    霜天晓阅读 1,119评论 0 1
  • 一、字符串在C#中,字符串是一系列不可修改的Unicode字符,创建字符串后,就不能修改它。要创建字符串,最常用的...
    CarlDonitz阅读 1,317评论 0 2
  • 今天看到一节诗歌经文,(求你使我们早早饱得你的慈爱,使我们在你的里面欢呼喜乐。)意思就是我们能够早点认识上帝,就早...
    李涵水阅读 248评论 0 2