diff --git "a/leetcode-solutions/0371-Sum-Of-Two-Integers-\344\270\244\346\225\264\346\225\260\344\271\213\345\222\214.md" "b/leetcode-solutions/0371-Sum-Of-Two-Integers-\344\270\244\346\225\264\346\225\260\344\271\213\345\222\214.md"
new file mode 100644
index 0000000..2fd7fb8
--- /dev/null
+++ "b/leetcode-solutions/0371-Sum-Of-Two-Integers-\344\270\244\346\225\264\346\225\260\344\271\213\345\222\214.md"
@@ -0,0 +1,114 @@
+# LeetCode [371. 两整数之和](https://leetcode-cn.com/problems/sum-of-two-integers/)
+
+
+
+
+
+## 题解
+
+题目要求不能使用 $+、-$,自然想到使用其他的二元运算符,我们可以根据二进制位,选择位运算符计算得到两数之和。
+
+**二进制相加,思想类似于十进制加法,但从「逢十进一」变为 「逢二进一」。**
+
+**两个二进制位相加有以下四种情况。**
+
+```
+1 + 1 = 0 (进位)
+
+1 + 0 = 1
+
+0 + 1 = 1
+
+0 + 0 = 0
+```
+
+直接使用异或 ^ 运算符的话,需要额外处理进位的情况, 即两个二进制位都为1。
+
+我们可以使用 bit位为进位符,来判断这种情况。
+
+下面考虑bit进位符,两个二进制位如何相加。
+
+
+
+**假设现在统计到二进制的第 i 位。**
+
+```
+bit = 0 的情况
+
+二进制位相加 运算后结果
+
+1 + 1 = 0 (进位) --> 答案加 0 bit=1
+1 + 0 = 1 --> 答案加 2^i bit=0
+0 + 1 = 1 --> 答案加 2^i bit=0
+0 + 0 = 0 --> 答案加 2^i bit=0
+```
+
+
+
+```
+bit = 1 的情况
+
+二进制位相加 运算后结果
+
+1 + 1 = 0 (进位) --> 答案加 2^i bit=1
+1 + 0 = 1 --> 答案加 0 bit=1
+0 + 1 = 1 --> 答案加 0 bit=1
+0 + 0 = 0 --> 答案加 2^i bit=0
+```
+
+数据范围是 $-1000<=x<=1000$,如果没有负数,根据二进制位,我们只需要统计10个二进制位,因为 $2^{10}=1024>100$。
+
+有负数的情况,我们需要统计到最高位,判断是否为负数,因此要统计32位。
+
+时间复杂度: $O(C)$ C为常数32。
+
+空间复杂度: $O(1)$。
+
+## 代码
+
+
+
+```c++
+class Solution {
+public:
+ int getSum(int a, int b) {
+ int ans = 0, bit = 0;
+ for (int i = 0; i < 32; i++) {
+ int x = (a >> i) & 1, y = (b >> i) & 1;
+ if (x & y) {
+ ans |= (bit << i);
+ bit = 1;
+ } else if (x | y) {
+ ans |= (1 ^ bit) << i;
+ } else {
+ ans |= (bit << i);
+ bit = 0;
+ }
+ }
+ return ans;
+ }
+};
+```
+
+
+## 最后
+
+大家好,我是编程熊,字节跳动、旷视科技前员工,ACM亚洲区域赛金牌,欢迎 [关注我](https://leetcode-cn.com/u/bianchengxiong/) 和加入 [LeetCode组队刷题群](https://mp.weixin.qq.com/s/TsTcCDboXwnTnUeIW3Zg9Q)。
+
+
+
+**分享几篇算法超级易懂的文章,希望对你有所帮助**
+
+1、[ACM金牌选手讲解LeetCode算法《线性表》](https://mp.weixin.qq.com/s/qwaYOFIksFVqZtA_nisl6g)
+
+2、[ACM金牌选手讲解LeetCode算法《栈和队列的高级应用》](https://mp.weixin.qq.com/s/I3DQOUmABmWav4nrAiI3Fg)
+
+3、[ACM金牌选手讲解LeetCode算法《哈希表》](https://mp.weixin.qq.com/s/af4gvYURUoCTfsyzsI9Www)
+
+4、[ACM金牌选手讲解LeetCode算法《二叉树》](https://mp.weixin.qq.com/s/8AcRNQS0Nno2_fU6kMtZeQ)
+
+5、[编程熊讲解LeetCode算法《堆》](https://mp.weixin.qq.com/s/ggd42G_QJ6I43F-vXSbpdA)
+
+
+
+如果题解和文章对你有所帮助,欢迎**点赞**支持。
\ No newline at end of file
diff --git "a/\345\212\233\346\211\243LeetCode\351\242\230\350\247\243/0001-Two-Sum-\344\270\244\346\225\260\344\271\213\345\222\214.md" "b/\345\212\233\346\211\243LeetCode\351\242\230\350\247\243/0001-Two-Sum-\344\270\244\346\225\260\344\271\213\345\222\214.md"
new file mode 100644
index 0000000..1f39be1
--- /dev/null
+++ "b/\345\212\233\346\211\243LeetCode\351\242\230\350\247\243/0001-Two-Sum-\344\270\244\346\225\260\344\271\213\345\222\214.md"
@@ -0,0 +1,75 @@
+
+
+
+
+## 0001-Two-Sum-两数之和
+https://leetcode-cn.com/problems/two-sum/
+
+## 题意
+
+给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
+
+你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
+
+你可以按任意顺序返回答案。
+
+**样例**
+
+```txt
+输入:nums = [2,7,11,15], target = 9
+输出:[0,1]
+解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
+```
+
+
+## 题解
+
+哈希可以快速查找一个数字。
+
+建立哈希表,key等于数组的值,value等于值所对应的下标。
+
+然后遍历数组,每次遍历到位置`i`时,检查 `target-num[i]` 是否存在,注意`target-num[i]`的位置不能等于`i`。
+
+下图以示例演示一下哈希表,将数组插入到哈希表中,查找给定的`key`,即可以在`O(1)` 的时间复杂度查找到,图中的a、b、c、d指的是哈希表的索引。
+
+
+
+
+## Java代码
+
+```java
+class Solution {
+ public int[] twoSum(int[] nums, int target) {
+ HashMap numExist = new HashMap();
+ for (int i = 0; i < nums.length; ++i) {
+ if (numExist.containsKey(target - nums[i])) {
+ return new int[]{i, numExist.get(target - nums[i])};
+ }
+ numExist.put(nums[i], i);
+ }
+ return new int[2];
+ }
+}
+```
+
+## C++代码
+
+```c++
+class Solution {
+public:
+ unordered_map numExist;
+ vector twoSum(vector &nums, int target) {
+ vector ans;
+ for (int i = 0; i < nums.size(); i++) {
+ int b = target - nums[i];
+ if (numExist.count(b)) {
+ ans.push_back(i);
+ ans.push_back(numExist.at(b));
+ break;
+ }
+ numExist[nums[i]] = i;
+ }
+ return ans;
+ }
+};
+```
diff --git "a/\345\212\233\346\211\243LeetCode\351\242\230\350\247\243/0371-Sum-Of-Two-Integers-\344\270\244\346\225\264\346\225\260\344\271\213\345\222\214.md" "b/\345\212\233\346\211\243LeetCode\351\242\230\350\247\243/0371-Sum-Of-Two-Integers-\344\270\244\346\225\264\346\225\260\344\271\213\345\222\214.md"
new file mode 100644
index 0000000..2fd7fb8
--- /dev/null
+++ "b/\345\212\233\346\211\243LeetCode\351\242\230\350\247\243/0371-Sum-Of-Two-Integers-\344\270\244\346\225\264\346\225\260\344\271\213\345\222\214.md"
@@ -0,0 +1,114 @@
+# LeetCode [371. 两整数之和](https://leetcode-cn.com/problems/sum-of-two-integers/)
+
+
+
+
+
+## 题解
+
+题目要求不能使用 $+、-$,自然想到使用其他的二元运算符,我们可以根据二进制位,选择位运算符计算得到两数之和。
+
+**二进制相加,思想类似于十进制加法,但从「逢十进一」变为 「逢二进一」。**
+
+**两个二进制位相加有以下四种情况。**
+
+```
+1 + 1 = 0 (进位)
+
+1 + 0 = 1
+
+0 + 1 = 1
+
+0 + 0 = 0
+```
+
+直接使用异或 ^ 运算符的话,需要额外处理进位的情况, 即两个二进制位都为1。
+
+我们可以使用 bit位为进位符,来判断这种情况。
+
+下面考虑bit进位符,两个二进制位如何相加。
+
+
+
+**假设现在统计到二进制的第 i 位。**
+
+```
+bit = 0 的情况
+
+二进制位相加 运算后结果
+
+1 + 1 = 0 (进位) --> 答案加 0 bit=1
+1 + 0 = 1 --> 答案加 2^i bit=0
+0 + 1 = 1 --> 答案加 2^i bit=0
+0 + 0 = 0 --> 答案加 2^i bit=0
+```
+
+
+
+```
+bit = 1 的情况
+
+二进制位相加 运算后结果
+
+1 + 1 = 0 (进位) --> 答案加 2^i bit=1
+1 + 0 = 1 --> 答案加 0 bit=1
+0 + 1 = 1 --> 答案加 0 bit=1
+0 + 0 = 0 --> 答案加 2^i bit=0
+```
+
+数据范围是 $-1000<=x<=1000$,如果没有负数,根据二进制位,我们只需要统计10个二进制位,因为 $2^{10}=1024>100$。
+
+有负数的情况,我们需要统计到最高位,判断是否为负数,因此要统计32位。
+
+时间复杂度: $O(C)$ C为常数32。
+
+空间复杂度: $O(1)$。
+
+## 代码
+
+
+
+```c++
+class Solution {
+public:
+ int getSum(int a, int b) {
+ int ans = 0, bit = 0;
+ for (int i = 0; i < 32; i++) {
+ int x = (a >> i) & 1, y = (b >> i) & 1;
+ if (x & y) {
+ ans |= (bit << i);
+ bit = 1;
+ } else if (x | y) {
+ ans |= (1 ^ bit) << i;
+ } else {
+ ans |= (bit << i);
+ bit = 0;
+ }
+ }
+ return ans;
+ }
+};
+```
+
+
+## 最后
+
+大家好,我是编程熊,字节跳动、旷视科技前员工,ACM亚洲区域赛金牌,欢迎 [关注我](https://leetcode-cn.com/u/bianchengxiong/) 和加入 [LeetCode组队刷题群](https://mp.weixin.qq.com/s/TsTcCDboXwnTnUeIW3Zg9Q)。
+
+
+
+**分享几篇算法超级易懂的文章,希望对你有所帮助**
+
+1、[ACM金牌选手讲解LeetCode算法《线性表》](https://mp.weixin.qq.com/s/qwaYOFIksFVqZtA_nisl6g)
+
+2、[ACM金牌选手讲解LeetCode算法《栈和队列的高级应用》](https://mp.weixin.qq.com/s/I3DQOUmABmWav4nrAiI3Fg)
+
+3、[ACM金牌选手讲解LeetCode算法《哈希表》](https://mp.weixin.qq.com/s/af4gvYURUoCTfsyzsI9Www)
+
+4、[ACM金牌选手讲解LeetCode算法《二叉树》](https://mp.weixin.qq.com/s/8AcRNQS0Nno2_fU6kMtZeQ)
+
+5、[编程熊讲解LeetCode算法《堆》](https://mp.weixin.qq.com/s/ggd42G_QJ6I43F-vXSbpdA)
+
+
+
+如果题解和文章对你有所帮助,欢迎**点赞**支持。
\ No newline at end of file
diff --git "a/ACM\351\207\221\347\211\214\351\200\211\346\211\213\350\256\262\350\247\243LeetCode\347\256\227\346\263\225\343\200\212\345\215\225\350\260\203\346\240\210\345\222\214\346\273\221\345\212\250\347\252\227\345\217\243\343\200\213.pdf" "b/\346\225\260\346\215\256\347\273\223\346\236\204\344\271\213\345\215\225\350\260\203\346\240\210\345\222\214\346\273\221\345\212\250\347\252\227\345\217\243.pdf"
similarity index 100%
rename from "ACM\351\207\221\347\211\214\351\200\211\346\211\213\350\256\262\350\247\243LeetCode\347\256\227\346\263\225\343\200\212\345\215\225\350\260\203\346\240\210\345\222\214\346\273\221\345\212\250\347\252\227\345\217\243\343\200\213.pdf"
rename to "\346\225\260\346\215\256\347\273\223\346\236\204\344\271\213\345\215\225\350\260\203\346\240\210\345\222\214\346\273\221\345\212\250\347\252\227\345\217\243.pdf"
diff --git "a/\343\200\212\345\223\210\345\270\214\343\200\213.md" "b/\346\225\260\346\215\256\347\273\223\346\236\204\344\271\213\345\223\210\345\270\214.md"
similarity index 100%
rename from "\343\200\212\345\223\210\345\270\214\343\200\213.md"
rename to "\346\225\260\346\215\256\347\273\223\346\236\204\344\271\213\345\223\210\345\270\214.md"
diff --git "a/\346\225\260\346\215\256\347\273\223\346\236\204\344\271\213\345\240\206.pdf" "b/\346\225\260\346\215\256\347\273\223\346\236\204\344\271\213\345\240\206.pdf"
new file mode 100644
index 0000000..f94e6e8
Binary files /dev/null and "b/\346\225\260\346\215\256\347\273\223\346\236\204\344\271\213\345\240\206.pdf" differ
diff --git "a/ACM\351\207\221\347\211\214\351\200\211\346\211\213\350\256\262\350\247\243LeetCode\347\256\227\346\263\225\343\200\212\347\272\277\346\200\247\350\241\250\343\200\213.pdf" "b/\346\225\260\346\215\256\347\273\223\346\236\204\344\271\213\347\272\277\346\200\247\350\241\250.md"
similarity index 100%
rename from "ACM\351\207\221\347\211\214\351\200\211\346\211\213\350\256\262\350\247\243LeetCode\347\256\227\346\263\225\343\200\212\347\272\277\346\200\247\350\241\250\343\200\213.pdf"
rename to "\346\225\260\346\215\256\347\273\223\346\236\204\344\271\213\347\272\277\346\200\247\350\241\250.md"
diff --git "a/\347\256\227\346\263\225\344\271\246\347\261\215/README.md" "b/\347\256\227\346\263\225\344\271\246\347\261\215/README.md"
new file mode 100644
index 0000000..ec8bc3e
--- /dev/null
+++ "b/\347\256\227\346\263\225\344\271\246\347\261\215/README.md"
@@ -0,0 +1,24 @@
+# 算法书籍📚
+
+**所有电子书在公众号【编程熊 】,扫码关注下面公众号,回复「书」 就可以免费获取下面所有计算机学习核心资料:**
+
+[**一键领取所有资料**](https://mp.weixin.qq.com/s/AgoVT6LkHojzG6ixbWgGJw)
+
+- 啊哈!算法.pdf
+
+- 挑战程序设计竞赛(第2版).pdf
+
+- 数据结构与算法分析:C语言描述_原书第2版_高清版.pdf
+
+- 算法 第4版 高清中文版.pdf
+
+- 算法图解.pdf
+
+- 算法导论第三版.pdf
+
+- 算法竞赛入门经典训练指南.pdf(高清).pdf
+
+- 背包九讲.pdf
+
+
+
diff --git "a/\351\242\230\350\247\243\346\250\241\346\235\277.md" "b/\351\242\230\350\247\243\346\250\241\346\235\277.md"
new file mode 100644
index 0000000..6963da5
--- /dev/null
+++ "b/\351\242\230\350\247\243\346\250\241\346\235\277.md"
@@ -0,0 +1,37 @@
+# 题目标题
+
+
+
+
+
+## 题解
+
+
+
+## 代码
+
+
+
+
+
+## 最后
+
+大家好,我是编程熊,字节跳动、旷视科技前员工,ACM亚洲区域赛金牌,欢迎 [关注我](https://leetcode-cn.com/u/bianchengxiong/) 和加入 [LeetCode组队刷题群](https://mp.weixin.qq.com/s/TsTcCDboXwnTnUeIW3Zg9Q)。
+
+
+
+**分享几篇算法超级易懂的文章,希望对你有所帮助**
+
+1、[ACM金牌选手讲解LeetCode算法《线性表》](https://mp.weixin.qq.com/s/qwaYOFIksFVqZtA_nisl6g)
+
+2、[ACM金牌选手讲解LeetCode算法《栈和队列的高级应用》](https://mp.weixin.qq.com/s/I3DQOUmABmWav4nrAiI3Fg)
+
+3、[ACM金牌选手讲解LeetCode算法《哈希表》](https://mp.weixin.qq.com/s/af4gvYURUoCTfsyzsI9Www)
+
+4、[ACM金牌选手讲解LeetCode算法《二叉树》](https://mp.weixin.qq.com/s/8AcRNQS0Nno2_fU6kMtZeQ)
+
+5、[编程熊讲解LeetCode算法《堆》](https://mp.weixin.qq.com/s/ggd42G_QJ6I43F-vXSbpdA)
+
+
+
+如果题解和文章对你有所帮助,欢迎**点赞**支持。
\ No newline at end of file