今日小结——20190422+20190423(LeetCode日常+论文)

一、#20:有效的括号

这个题目,用常规字符串的方法可以做,但是会很繁琐,不停遍历+对比,所以数据结构的方法又来了!

没chuo!用栈stack!

用栈的话 ,思路就比较简单一些,首先判断输入字符串开头元素是否存在右括号,若是有右括号在前,那么直接返回false,如果是左括号就进栈,然后后面再有左括号继续进栈,有右括号则查看是否与栈顶左括号匹配,匹配则栈顶元素出栈,继续匹配下一个右括号,如果遍历完,则判断是否栈为空,如果不为空则返回false,最后这个判断就是为了防止有多个左括号,代码如下:

class Solution {
public:
    bool isValid(string s) {
        
        if(s.empty())
            return true;
        stack<char> sta;

    for (int i = 0; i < s.size(); i++)
    {
        switch (s[i])
        {
        case ')':
            if (!sta.empty() && sta.top() == '(')
                sta.pop();
            else
                return false;
            break;
        case ']':
            if (!sta.empty() && sta.top() == '[')
                sta.pop();
            else
                return false;
            break;
        case '}':
            if (!sta.empty() && sta.top() == '{')
                sta.pop();
            else
                return false;
            break;
        default:
            sta.push(s[i]);
            break;
        }
    }
    if(!sta.empty())
    {
        return false;
    }
    return sta.size() == 0;
    }
};

二、#21:合并两个有序列表

题目要求很容易看出来,就是吧两个本来就数字链表合并后并排序,这个题目也是很简单的,找到两个链表,然后比较从头指针开始的每一个value,将较小值放入新链表,并向后移动一位,直到给定的两个链表有一个的next为空,则开始将另一个链表的后几位接在新链表后面,这里要考虑的是题目给的是有序链表,如果是无序链表则需要先进行排序,链表排序的方式有很多,可以从头到尾一个一个比大小,小值放入新链表,然后回溯比较,直到排序完成。代码如下:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        ListNode* res=new ListNode(0);
        ListNode* p=res;
        while(l1!=NULL&&l2!=NULL)
        {
            if((l1->val)<(l2->val))
            {
                p->next=l1;
                l1=l1->next;
            }
            else
            {
                p->next=l2;
                l2=l2->next;
            }
            p=p->next;
        }
        if(l1!=NULL)
        {
            p->next=l1;
            l1=l1->next;
            p=p->next;
        }
        if(l2!=NULL)
        {
            p->next=l2;
            l2=l2->next;
            p=p->next;
        }
        return res->next;
    }
};

 三、论文

 现在主要想找灵感的地方就是光源,所以主要关注论文的光源选择、布置以及打光方式,因为缺陷大概只有1-3mm直径,所有分区域打光拍摄是有必要的,光源布置一定要尽可能放在拍摄区域正中央,而且要通过一层薄膜来把光源柔和并且散射均匀,所以找了很多材料,发现用的比较多的柔光纸和玻璃薄膜,这两种开会要和老师具体协商,分区域打光的方式也需要协商,目前还是数据采集问题比较大,难道真的要在那边待两天一直采集?我可不想。。。这周还得考虑图像采集卡的问题,虽然不是实时传输,但是也得保证有较好的效果,不失真,不然随便失真一下,缺陷就没了。。。

四、基础知识补齐——tensorflow

上次把底层的整个训练过程以及参数作用数学过程模拟了一遍,今天在加训练方式的过程中不是很顺畅,开始用交叉熵和正则的和去优化训练准确率,发现在反向传播中耗时更长,后来换了模型,但是错误报了一连串,debug了几个,没有全部弄完,因为每次训练一遍得10min+,所以调试也是很慢。。。后来解决不了所以就跑过去和我宝玩儿了会儿哈哈哈哈,晚上回来希望能搞定!

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值