
算法和刷题
goldfish3
这个作者很懒,什么都没留下…
展开
-
指针对撞法
例1:给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]import org.omg.PortableInter...原创 2019-04-04 10:14:39 · 321 阅读 · 0 评论 -
strcat、strcpy、strncpy、memset、memcpy、itoa、atoi的使用和内部实现
1:strcat函数原型:char *strcat(char *__s1, const char *__s2);在使用上要注意 char* a 和 char a[] 的区别,如下方式是错误的:int main{ char* a = "abc"; char b[] = "def"; char* c = strcat(a,b);}因为 a 指向的字符串分配在字符常量区,是不可更改...原创 2019-09-05 17:11:55 · 543 阅读 · 0 评论 -
机器学习基础之线性代数:向量
为什么要学习线性代数?真实的世界是多维度的,单变量不足以描述这个世界。将单变量变为向量,就是线性代数了原创 2019-07-28 00:39:42 · 1962 阅读 · 0 评论 -
机器学习线性代数:矩阵基础
矩阵是向量的集合,在线性代数中,矩阵代表一组变换或空间。原创 2019-08-04 14:52:15 · 474 阅读 · 0 评论 -
排序算法总结
O(n^2)为什么要学习O(n^2)的排序算法?编码简单,易于实现在某些特殊情况,简单的算法更有效简单算法的思想衍生出复杂的排序算法(如插入排序 -> 希尔排序)作为子过程,改进更复杂的排序算法选择排序template<typename T>void selectSort(T arr[], int len){ for (int i = 0; i <...原创 2019-04-23 11:29:11 · 285 阅读 · 0 评论 -
回溯法
题目 1:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。例如 :a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,...原创 2019-04-03 13:40:01 · 213 阅读 · 0 评论 -
动态规划和贪婪算法
1:动态规划满足如下条件的问题,可以使用动态规划来解决求一个问题的最优解这个问题可以分为若干个子问题子问题又可以被分为更小的子问题例子给一根长度为n的绳子,把绳子剪成m段,求m段的最大乘积是多少?当绳子长度为0的绳子:最大乘积为0当绳子长度为1绳子:最大乘积为1当绳子长度为2绳子:最大乘积为2当绳子长度为3绳子:最大乘积为3长度为4的绳子可以分为2和2:最大乘积为 2...原创 2019-04-03 13:34:34 · 245 阅读 · 0 评论 -
位运算
位运算一共只有5种操作:与 &:两者都为真时为真或 |:有一个为真,就为真异或**^**:都为0,或者都为1的时候为假,一个0或者一个1的时候,为真左移运算符 <<:对于无符号数,向左移,高位补0。对于有符号数,负数补1,正数补0右移运算符 >>:低位补0例1:输入一个数,输出该数二进制表示中1的个数。普通解法:先和 0001 做 & ...原创 2019-04-03 13:19:18 · 119 阅读 · 0 评论 -
滑动窗口法
题目:给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0,如:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。可以使用滑动窗口法求解:维持一个窗口,每次计算窗口的值是否满足要求import org...原创 2019-04-03 13:08:46 · 725 阅读 · 0 评论 -
回溯法与全排列和全组合
如图:全排列问题是一个典型的树型问题:原创 2019-04-08 12:45:26 · 865 阅读 · 0 评论 -
模拟系统栈实现二叉树前序遍历
import java.util.*;public class Main { public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } //...原创 2019-04-06 16:47:12 · 337 阅读 · 0 评论 -
二叉树的层序遍历
leetcode 102 二叉树的层序遍历给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]import sun.reflec...原创 2019-04-06 16:05:46 · 206 阅读 · 0 评论 -
查找表相关问题
例1:给定两个数组,编写一个函数来计算它们的交集leetCode 349 --------- Set的使用示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果...原创 2019-04-04 15:27:57 · 273 阅读 · 0 评论 -
小米2019笔试 —— 打印二叉树
#include <iostream>#include <vector>#include <string>#include <deque>#include <stack>using namespace std;stack<char> s;class Node{public: Node* left...原创 2019-09-07 03:41:55 · 457 阅读 · 0 评论