A
LeetCode:
344. Reverse String
Write a function that reverses a string. The input string is given as an array of characters char[]
.
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
You may assume all the characters consist of printable ascii characters.
Example 1:
Input: ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
Example 2:
Input: ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]
本题较简单,题目要求将数组反转,并控制时间空间,考虑双指针。
代码如下:
class Solution {
public:
void reverseString(vector<char>& s) {
if(s.empty() || s.size() == 1){return;}
vector<char>::iterator i, j;
for(i = s.begin(), j = s.end() - 1; i <= j; i++, j--) {
char temp;
temp = *i;
*i = *j;
*j = temp;
}
return;
}
};
运行结果:
Runtime: 48 ms, faster than 94.19% of C++ online submissions for Reverse String.
Memory Usage: 15.1 MB, less than 82.61% of C++ online submissions for Reverse String.
查看他人的代码:
class Solution {
public:
void reverseString(vector<char>& s) {
if (s.size() < 2) return;
size_t l = 0;
size_t r = s.size() - 1;
while (l < r) {
swap(s[l], s[r]);
++l;
--r;
}
}
};
主要不同在于,该作者使用了vector
中的swap()
方法,思路差异不大。
R
Half a face enough for recognition technology
本文是有关人脸识别的一些内容:Bradford大学的研究者发现,人脸识别技术能在仅有半张脸可见的条件下成功做到识别。他们的研究队伍已经能够在仅有四分之三和一半脸部的条件下,达到100%的识别率。这项发表在Future Generation Computer Systems的研究,第一个将机器学习用于测试不同脸部的识别率。
问题提出:Bradford大学的首席研究员Hassan Ugail教授说,人类识别脸部的能力非常强大,但在仅有部分人脸可视的条件下,人对人脸的识别率显著下降;而计算机在大量人脸条件下,识别人脸的能力已经比人类更强了,因此他们想尝试在部分人脸识别这一方面,计算机是否能够有一样良好的表现。
方法:使用卷积神经网络机器学习技术,利用一款名为VGG(广泛用于人脸识别)的特征提取模型。数据集:2800张相片(从巴西FEI大学的200名学生与职工中提取,男女数量相等)。
实验:
1、 只用全脸图片训练模型;结果:四分之三、上半部分、右半部分识别成功率达100%,但下半部分仅60%,只含眼睛、鼻子等图片的识别率仅40%;
2、 将部分人脸的图片再次用于训练模型,结果:各项识别率均显著提升,甚至不含任何部位(眼、鼻等)的脸部识别成功率也达到了90%左右。
意义:可为安全与犯罪的预防防治开辟新道路。
不足:需要在更大数据集中进一步证实;除全脸图片外,还需使用部分脸部图片。
T
关于hash_map
总体来说,hash_map类似于python中的字典,可以快速地根据key查找值。
官方文档:hash_map
S
看了一些别人的代码,感觉自己的代码有点儿问题,于是了解了一下重构的使用:refactor