JinFei's Blog

Thinking will not overcome fear but action will.

[剑指Offer]函数参数指针的指针的理解

指针

指针的指针的 #include <iostream> using namespace std; void funTest1(char* p){ p++; // 形参 p 是 实参的副本, 形参p的改变并不会改变实参的指向 } void funTest2(char** p){ (*p)++; // 遍历str,可以使用指针的指针,通过复制指针的指针 ...

[剑指Offer]正则表达式匹配

正则表达式

题目描述 请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”abaca”匹配,但是与”aa.a”和”ab*a”均不匹配 解题思路 当模式中的第二个字符是’*‘时: 如果字符串...

[剑指Offer]旋转数组的最小数字

二分查找

题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 解题思路 本题考察的是二分查找 无法确定中间元素是属于前面还是后面的递增子数组,只...

[LeetCode]199. Binary Tree Right Side View

二叉树的层次遍历,从右往左看

题目描述 Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom. Example1: Input: [1,2,3,null,5,null,4] ...

[LeetCode]92. Reverse Linked List II

链表部分转置

题目描述 Reverse a linked list from position m to n. Do it in one-pass. Note: 1 ≤ m ≤ n ≤ length of list. Example1: Input: 1->2->3->4->5->NULL, m = 2, n = 4 Output: 1->...

[LeetCode]5. Longest Palindromic Substring

最长回文子串

题目描述 Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. Example1: Input: “babad” Output: “bab” Note: “aba” is also a ...

[剑指Offer]把字符串转换成整数

字符串转整数,各种异常的处理

题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述 输入一个字符串,包括数字字母符号,可以为空 输出描述 如果是合法的数值表达则返回该数字,否则返回0 示例1 输入 +2147483647 1a33 输出 2147483647 0 ...

[LeetCode]617. Merge Two Binary Trees

树的合并,递归

题目描述 Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not. You need to merge them into a new...

[剑指Offer]排序算法总结

排序

快速排序 void QuickSort(vector<int>& data, int begin, int end){ if(begin < end){ int pivot = parition(data, begin, end); QuickSort(data, begin, pivot - 1); Quc...

[剑指Offer]字符串的排列

回溯,递归遍历

题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。 解题思路 遍历出所有可能出现在第一个位置的字符(即:依次将第一个字符同后面所有字符交换); 固...