ARTS_week12

A

LeetCode:
16. 3Sum Closest
Given an array nums of n integers and an integer target, find three integers in nums such that the sum is closest to target. Return the sum of the three integers. You may assume that each input would have exactly one solution.
Example:

Given array nums = [-1, 2, 1, -4], and target = 1.
The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).

  • 我的代码:
class Solution {
public:
    int threeSumClosest(vector& nums, int target) {
        if(nums.size() < 3) {return 0;}
        if(nums.size() == 3) {return nums[0] + nums[1] + nums[2];}
        sort(nums.begin(), nums.end());
        vector::iterator stable = nums.begin(), 
                              begin = stable + 1, 
                              end = nums.end() - 1;
        int diff_val = INT_MAX, res = 0, sum = 0;
        for(; stable != nums.end(); stable++) {
            begin = stable + 1;
            end = nums.end() - 1;
            while(begin < end) {
                sum = *stable + *begin + *end;
                if(abs(sum - target) <= diff_val) {
                    res = sum;
                    diff_val = min(abs(sum - target), diff_val);
                }
                if(sum - target == 0) {return sum;}
                if(sum - target < 0) {
                    begin++;
                }
                if(sum - target > 0) {
                    end--;
                }
            }
        }
        return res;
    }
};
  • 运行结果:
    Runtime: 4 ms, faster than 99.79% of C++ online submissions for 3Sum Closest.
    Memory Usage: 8.8 MB, less than 46.86% of C++ online submissions for 3Sum Closest.

  • 主要思想:

  1. 排序
  2. 选定一个值后,使用双指针,逐一比较

R

How artificial intelligence can help detect rare diseases

  • 总摘:罕见遗传疾病较难诊断,但科学家们对679名患有105种不同疾病的患者进行的研究表明,神经网络能将个人的肖像照片与患者和遗传数据相结合,并且此方法能更可靠、有效地检测罕见疾病。
  • 作用:该软件将能够通过检测相片中的肖像特征,并与患者的临床症状和遗传数据相结合,以高精度地计算出可能获得的疾病。
  • 训练数量:30,000张受罕见综合症影响的人的肖像照片。
  • 其他注意点:
    1) 通过与面部分析结合,可以过滤掉决定性的遗传因素,并优先考虑基因;
    2) 合并在神经网络的数据可减少分析时间并提高诊断率。

T

随机森林 —— 对决策树的优化

  • 随机森林生成过程
  1. 利用自助抽样法(Bootstrap),有放回地抽取样本N个,作为一个训练子集;
  2. 从原样本的X个特征中抽取k个特征,作为森林中其中一棵决策树的每一个节点的分裂依据,生成一棵决策树(不剪枝);
  3. 重复上述的1、2步骤m次,产生m棵决策树(即森林);
  4. 输入用于测试的数据集(n个测试数据集,测试n次),得出每一棵决策树的结果,并利用多数投票法机制产生最终的决策结果(Bagging策略)。
  • 随机森林特点
    样本随机抽样、特征(每一棵决策树的节点分裂依据)随机抽样,能较好地防止单棵决策树造成的过拟合现象。
  • 参考链接:
    对于随机森林的通俗理解
    随机森林详解
    统计学里面的自助法(Bootstrap Method)为什么效果好?
    bootstraping、bagging、boosting三个算法的概念及区别

S

近期准备期末考试,没怎么学新的东西。
做算法题时,发现了C++自带的排序方法:

#include 
sort(首地址,尾地址) // 一般用法,默认降序

参考:C++ 排序函数 sort(),qsort()的用法

你可能感兴趣的:(ARTS_week12)