<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JohnZero74的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/JohnZero74</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JohnZero74]]></copyright><item><title><![CDATA[(JohnZero)Java:List]]></title><link>https://blog.youkuaiyun.com/JohnZero74/article/details/107409262</link><guid>https://blog.youkuaiyun.com/JohnZero74/article/details/107409262</guid><author>JohnZero74</author><pubDate>Fri, 17 Jul 2020 15:39:42 +0800</pubDate><description><![CDATA[List方法118.杨辉三角1
方法
package basic;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;

//List使用方法
public class ListDemo {

    public static void main(String[] args) {
]]></description><category></category></item><item><title><![CDATA[(JohnZero)C++:二叉树]]></title><link>https://blog.youkuaiyun.com/JohnZero74/article/details/107407684</link><guid>https://blog.youkuaiyun.com/JohnZero74/article/details/107407684</guid><author>JohnZero74</author><pubDate>Fri, 17 Jul 2020 14:34:11 +0800</pubDate><description><![CDATA[二叉树100.相同的树
100.相同的树

方法一：递归
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
  public boolean isSameTree(TreeNod]]></description><category></category></item><item><title><![CDATA[(JohnZero)C++:链表]]></title><link>https://blog.youkuaiyun.com/JohnZero74/article/details/107353630</link><guid>https://blog.youkuaiyun.com/JohnZero74/article/details/107353630</guid><author>JohnZero74</author><pubDate>Wed, 15 Jul 2020 10:03:21 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/liujian20150808/article/details/50640979?locationNum=4&amp;fps=1


]]></description><category></category></item><item><title><![CDATA[(JohnZero)C++:类型转换]]></title><link>https://blog.youkuaiyun.com/JohnZero74/article/details/107289536</link><guid>https://blog.youkuaiyun.com/JohnZero74/article/details/107289536</guid><author>JohnZero74</author><pubDate>Sat, 11 Jul 2020 19:47:18 +0800</pubDate><description><![CDATA[类型转换string与intstring与char*
string与int
https://www.cnblogs.com/Pillar/p/4206452.html
int-&gt;string
 char c[10] ;
int a = 123;
_itoa_s(a, c, 10);	//10进制
cout &lt;&lt; c;

string-&gt;int
string str = "20";
char* c;
int a = static_cast&lt;int&gt;(strtol(str.c]]></description><category></category></item><item><title><![CDATA[(JohnZero)C++:KMP算法]]></title><link>https://blog.youkuaiyun.com/JohnZero74/article/details/107221633</link><guid>https://blog.youkuaiyun.com/JohnZero74/article/details/107221633</guid><author>JohnZero74</author><pubDate>Thu, 09 Jul 2020 10:58:38 +0800</pubDate><description><![CDATA[kmp算法完成的任务是：给定两个字符串O和f，长度分别为n和m，判断f是否在O中出现，如果出现则返回出现的位置。常规方法是遍历a的每一个位置，然后从该位置开始和b进行匹配，但是这种方法的复杂度是O(nm)。kmp算法通过一个O(m)的预处理，使匹配的复杂度降为O(n+m)。

C++
#include&lt;iostream&gt;
using namespace std;
int KMP(string text, string find)
{
	int j = 0;
	for (int i = 0; i ]]></description><category></category></item><item><title><![CDATA[(JohnZero)C++:struct  typedef  enum]]></title><link>https://blog.youkuaiyun.com/JohnZero74/article/details/107211610</link><guid>https://blog.youkuaiyun.com/JohnZero74/article/details/107211610</guid><author>JohnZero74</author><pubDate>Wed, 08 Jul 2020 18:30:41 +0800</pubDate><description><![CDATA[struct  typedef  enum结构体struct声明并初始化结构体如何为结构体中的字符数组赋值自定义数据类型typedef枚举类型enum
结构体struct
声明并初始化结构体
#include&lt;iostream&gt;
using namespace std;
struct student
{
    int num;    //学号
    char name[20];  //姓名
    char sex;   //性别
    int age;    //  年龄
}stu = ]]></description><category></category></item><item><title><![CDATA[(JohnZero)C++:unordered_set]]></title><link>https://blog.youkuaiyun.com/JohnZero74/article/details/107206740</link><guid>https://blog.youkuaiyun.com/JohnZero74/article/details/107206740</guid><author>JohnZero74</author><pubDate>Wed, 08 Jul 2020 15:45:36 +0800</pubDate><description><![CDATA[hash_set是非标准的，
而unordered_set是标准的
unordered_set
搜索、插入和移除
拥有平均常数时间复杂度
在内部，
元素并不以任何特别顺序排序，
而是组织进桶中。
元素被放进哪个桶完全依赖其值的哈希。
这允许对单独元素的快速访问，
因为哈希一旦确定，
就准确指代元素被放入的桶。
不可修改容器元素
（即使通过非 const 迭代器），
因为修改可能更改元素的哈希，
并破坏容器。
空:
unordered_set&lt; int &gt; my_set;
cout&lt;&lt.]]></description><category></category></item><item><title><![CDATA[(JohnZero)LeetCode笔记]]></title><link>https://blog.youkuaiyun.com/JohnZero74/article/details/107196248</link><guid>https://blog.youkuaiyun.com/JohnZero74/article/details/107196248</guid><author>JohnZero74</author><pubDate>Wed, 08 Jul 2020 07:21:08 +0800</pubDate><description><![CDATA[LeetCode笔记1.两数之和2.两数相加63.不同路径112.路径总和
1.两数之和
方法一：暴力法
return new int[] { i, j };
方法二：哈希表
以空间换时间，速度较快
2.两数相加
输入：(2 -&gt; 4 -&gt; 3) + (5 -&gt; 6 -&gt; 4)
输出：7 -&gt; 0 -&gt; 8
原因：342 + 465 = 807
/**
 * Definition for singly-linked list.
 * public class ListNo]]></description><category></category></item><item><title><![CDATA[(JohnZero)C++:vector]]></title><link>https://blog.youkuaiyun.com/JohnZero74/article/details/107180448</link><guid>https://blog.youkuaiyun.com/JohnZero74/article/details/107180448</guid><author>JohnZero74</author><pubDate>Tue, 07 Jul 2020 16:54:57 +0800</pubDate><description><![CDATA[vector简介使用创建复制IteratorsCapacityElement accessModifiers1.assign2.插入3.删除4.swapAllocator二维数组
简介
头文件#include&lt; vector &gt;
size可动态改变；
会分配额外的空间，以适应size的动态增长；
与其他容器（deques、lists、forward_lists）相比，vector在获取第一个和最后一个元素的操作效率更高，但对于中间元素的操作效率较低。
使用
创建
自动初始化各元素为0
vecto]]></description><category></category></item><item><title><![CDATA[(JohnZero)Java:queue队列]]></title><link>https://blog.youkuaiyun.com/JohnZero74/article/details/107174018</link><guid>https://blog.youkuaiyun.com/JohnZero74/article/details/107174018</guid><author>JohnZero74</author><pubDate>Tue, 07 Jul 2020 09:29:54 +0800</pubDate><description><![CDATA[理解：
队列是一种特殊的线性表，它只允许在表的前端（front）进行删除操作，而在表的后端（rear）进行插入操作。进行插入操作的端称为队尾，进行删除操作的端称为队头。队列中没有元素时，称为空队列。
Queue接口与List、Set同一级别，都是继承了Collection接口。LinkedList实现了Deque接 口。
假设下面是一个队列：
队尾 ----&gt;[1,2,3,4,5]—&gt; 队头
数据从队尾进，从队头出。即先进先出原则。
java5 中新增加了java.util.Queue接口，用以]]></description><category></category></item><item><title><![CDATA[(JohnZero)C++：queue]]></title><link>https://blog.youkuaiyun.com/JohnZero74/article/details/107173508</link><guid>https://blog.youkuaiyun.com/JohnZero74/article/details/107173508</guid><author>JohnZero74</author><pubDate>Tue, 07 Jul 2020 09:11:50 +0800</pubDate><description><![CDATA[原文地址
queue单向队列与栈有点类似，一个是在同一端存取数据，另一个是在一端存入数据，另一端取出数据。单向队列中的数据是先进先出（First In First Out,FIFO）。在STL中，单向队列也是以别的容器作为底部结构，再将接口改变，使之符合单向队列的特性就可以了。因此实现也是非常方便的。下面就给出单向队列的函数列表和VS2008中单向队列的源代码。单向队列一共6个常用函数（front()、back()、push()、pop()、empty()、size()），与栈的常用函数较为相似。

由于q]]></description><category></category></item><item><title><![CDATA[LeetCode200707（路径总和）]]></title><link>https://blog.youkuaiyun.com/JohnZero74/article/details/107172996</link><guid>https://blog.youkuaiyun.com/JohnZero74/article/details/107172996</guid><author>JohnZero74</author><pubDate>Tue, 07 Jul 2020 08:59:13 +0800</pubDate><description><![CDATA[LeetCode200707112. 路径总和（S）
112. 路径总和（S）

注意到本题的要求是，询问是否有从「根节点」到某个「叶子节点」经过的路径上的节点之和等于目标和。核心思想是对树进行一次遍历，在遍历时记录从根节点到当前节点的路径和，以防止重复计算。
需要特别注意的是，给定的 root 可能为空。
方法一：广度优先搜索
思路及算法
首先我们可以想到使用广度优先搜索的方式，记录从根节点到当前节点的路径和，以防止重复计算。
这样我们使用两个队列，分别存储将要遍历的节点，以及根节点到这些节点的路径和即可]]></description><category></category></item><item><title><![CDATA[(JohnZero)C++：数组]]></title><link>https://blog.youkuaiyun.com/JohnZero74/article/details/107159975</link><guid>https://blog.youkuaiyun.com/JohnZero74/article/details/107159975</guid><author>JohnZero74</author><pubDate>Mon, 06 Jul 2020 15:57:53 +0800</pubDate><description><![CDATA[数组获取动态数组的元素个数
获取动态数组的元素个数
vs2012用*(array-4)获取，vs2017用*(array-3)获取，且只对int类型有效，对double和char无效，改用_msize(array)获取。注意：_msize只能取得 new, malloc 分配的内存大小
int类型
int** array;
 int m = 8, n = 9;
 array = new int* [m];
 for (int i = 0; i &lt; m; ++i)
 {
  array[i] = new]]></description><category></category></item><item><title><![CDATA[LeetCode200706（不同路径 II）]]></title><link>https://blog.youkuaiyun.com/JohnZero74/article/details/107151213</link><guid>https://blog.youkuaiyun.com/JohnZero74/article/details/107151213</guid><author>JohnZero74</author><pubDate>Mon, 06 Jul 2020 14:43:27 +0800</pubDate><description><![CDATA[LeetCode200706

]]></description><category></category></item><item><title><![CDATA[Qt通讯录（语音输入+发邮件+发短信+头像）]]></title><link>https://blog.youkuaiyun.com/JohnZero74/article/details/107088013</link><guid>https://blog.youkuaiyun.com/JohnZero74/article/details/107088013</guid><author>JohnZero74</author><pubDate>Thu, 02 Jul 2020 20:59:04 +0800</pubDate><description><![CDATA[Qt通讯录（语音识别+发送邮件）项目背景功能运行程序关键技术语音识别ASR发送电子邮件
项目背景
作为一个Qt小白，迫于大一下学期的C++大作业的需要，我看了两天的黑马程序员Qt视频教程，便操刀上阵了。捣鼓了一个星期，写了3000多行代码，终于实现得差不多了。期间历程坎坷，感受颇多，因此在这里写下我的第一篇博客。
功能
1.新建/编辑/删除联系人；
2.按姓名/出生日期对联系人进行排序；
3.按照关键字来查找联系人；
4.给联系人打电话（形式上）；
5.语音识别输入
6.给联系人发邮件并自动生成贺信;
7.]]></description><category></category></item></channel></rss>