草庐IT

working_days

全部标签

代码随想录算法训练营|day18

第六章二叉树513.找树左下角的值112.路径总和113.路径总和ii106.从中序与后序遍历序列构造二叉树105.从前序与中序遍历序列构造二叉树代码随想录文章详解总结513.找树左下角的值(1)递归:复用求最大深度先递归遍历左子树,后右子树,所以当取到最大深度时,返回对应的节点值funcfindBottomLeftValue(root*TreeNode)int{ifroot==nil{return0}height:=0leftVal:=0vargetDepthfunc(root*TreeNode,depthint)getDepth=func(root*TreeNode,depthint){i

LC打怪录Day6哈希表(1.2)-349. 两个数组的交集

给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。输入:nums1=[4,9,5],nums2=[9,4,9,8,4]输出:[9,4]解释:[4,9]也是可通过的method1:array数组解classSolution:defintersection(self,nums1:List[int],nums2:List[int])->List[int]:#创建两个长度为1001的列表count1和count2,初始值都是0。#这里假设数组中的数字不会超过1000。count1=[0]*1001count2=[0]

C++11 基于范围的循环 : How does it really work

我知道这个循环是如何工作的,以及我如何在实际问题中使用它。但我想知道幕后发生了什么。我认为这个循环类似于常规的for循环,例如for(inti=0;i变量i只初始化一次,所以我认为这对于基于范围的循环也是一样的。但是如果我写这段代码:for(constintx:vec){cout编译器允许我这样做,但我不明白这是怎么可能的。如果变量x是const,为什么在每次迭代中x值都不同? 最佳答案 循环的每次迭代都会创建一个局部变量x并将其初始化为vec的下一个元素。当循环迭代结束时,x超出范围。单个x永远不会被修改。参见thislink为了

蓝桥杯(Python)每日练Day5

题目OJ1229题目分析题目完全符合栈的特征,后进先出。如果能够熟练使用列表的9种方法那么这道题很容易解出。题解a=[]#存衣服n=int(input())foriinrange(n):l=list(input().split())#判断每一步的操作iflen(l[0])==2:a.append(l[1])else:whilea.pop()!=l[1]:passiflen(a)==0:print('Empty')else:print(a[-1])题目题目分析输入一层就记录一层的权和,然后输出权和最大的层数,第一步,判断总共有多少层。以下是log()方法的语法:importmathmath.lo

c++ - noexcept 运算符和 enable_if_t : do they work together?

考虑以下类:structS{templatestd::enable_if_t::value>f()noexcept{}templatestd::enable_if_t::value>g()noexcept{}};正如预期的那样,编译:s.f();这个不是:s.g();令我困惑的是,下面的main是用GCC(6.2)编译的,而不是用clang(3.9)编译的:intmain(){static_assert(noexcept(&S::f),"!");static_assert(noexcept(&S::g),"!");}我会说第二个断言失败是因为特化无效。两个编译器不同意这一点。哪个是正确

代码随想录day03-链表|203.移除链表元素、707.设计链表、 206.反转链表

参考:代码随想录文章目录链表常用技巧:1.1.移除链表元素1.2设计链表1.3反转链表链表常用技巧:在对链表进行操作时,一种常用的技巧是添加一个哑节点(dummynode),它的next指针指向链表的头节点。这样一来,我们就不需要对头节点进行特殊的判断了。特别是在需要删除节点的时候。1.1.移除链表元素链接:203.移除链表元素题目描述:给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。方法:这里的链表没有头结点,因此如果删除节点是第一个结点会不方便,所以加上了一个哑结点作为虚拟的头结点,在删除节点的时候就不用单独讨论删除第

c++ - 在 VC2015 中连接不匹配的字符串 WORKS - 如何?

当我们有这些之一时:autocity1="New"L"Delhi";autocity2=L"New""York";任何VS2015之前的编译器都会引发错误:errorC2308:concatenatingmismatchedstrings但是使用VC2015编译器,它编译得很好并且结果类型(auto推导)是一个宽字符字符串。我的问题是:何时以及如何做到这一点-任何标准规范? 最佳答案 在C++03中,此行为是未定义的。ISO14882-2003:2.13.4.3指出Intranslationphase6(2.1),adjacentn

c++ - QSettings(Qt 5.4) : setValue doesn't work properly

在我的.cpp中,我正在使用QSettings。这以前在Qt4.8中有效:#include----------QSettingssettings;settings.setValue("time_axis_direction",1);inttest_var=settings.value("time_axis_direction").toInt();----------test_var程序返回0,请问是什么原因?我将Qt与VS插件一起使用。 最佳答案 根据docs,你必须设置组织名称和应用程序名称:QCoreApplication::s

【SQL刷题】Day10----SQL高级过滤函数专项练习

博主昵称:跳楼梯企鹅博主主页面链接:博主主页传送门博主专栏页面连接:专栏传送门--网路安全技术创作初心:本博客的初心为与技术朋友们相互交流,每个人的技术都存在短板,博主也是一样,虚心求教,希望各位技术友给予指导。博主座右铭:发现光,追随光,成为光,散发光;博主研究方向:渗透测试、机器学习;博主寄语:感谢各位技术友的支持,您的支持就是我前进的动力;学习网站跳转链接:牛客刷题网前言给大家推荐一款很好的刷题软件牛客刷题网 博主为什么喜欢用这个网站学习呢?主要原因有三点:1.内部含有大量面试题库2.覆盖行业范围比较全面3.刷题的题目是按照简单到难的过程一、过滤函数(高级)简介:数据库表一般包含大量的数

C++11 原子 : why does this code work?

让我们采用这个结构:structentry{atomicvalid;atomic_flagwriting;charpayload[128];}两个线程A和B以这种方式同时访问这个结构(让e成为entry的一个实例):if(e.valid){//dosomethingwithe.payload...}else{while(e.writing.test_and_set(std::memory_order_acquire));if(!e.valid){//writee.payloadonebyteatatime//(thepayloadwrittenbyAmaybedifferentfrom