刷题笔记(第一天)

1. 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

示例 1:

输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:

输入:nums = [3,2,4], target = 6
输出:[1,2]
示例 3:

输入:nums = [3,3], target = 6
输出:[0,1]

var twoSum = function(nums, target) {for(let i=0;i<nums.length;i++) {for(let j=1;j<nums.length;j++) {if (nums[i]+nums[j]===target) {return [i,j];}}}retrun [-1,-1];
}

2.(1)给定一个整型参数 n,请你编写并返回一个 counter 函数。这个 counter 函数最初返回 n,每次调用它时会返回前一个值加 1 的值 ( n ,  n + 1 ,  n + 2 ,等等)。

示例 1:

输入:
n = 10 
["call","call","call"]
输出:[10,11,12]
解释:
counter() = 10 // 第一次调用 counter(),返回 n。
counter() = 11 // 返回上次调用的值加 1。
counter() = 12 // 返回上次调用的值加 1。

var createCounter = function(n) {return function() {return n++;};
};

(2)要理解闭包,然后使用:

闭包概念:一个函数对周围状态的引用捆绑在一起,内层函数中访问到其外层函数的作用域

简单理解:闭包=内层函数+外层函数的变量

 当一个函数定义在另一个函数内部,并且内部函数引用了外部函数作用域中的变量时,就会创建一个闭包。当内部函数从外部函数返回时,它会保留对外部函数作用域的引用,即使在外部函数执行完毕后,仍然可以继续访问这些变量。反之则不成立! 简单来说,闭包可以“记住”来自其外部函数作用域的值,并在以后使用它们,即使外部函数已经返回,而这些值通常已经超出范围。 什么时候使用闭包概念? 从定义中我们可以看到,它通常用于从外部父函数检索值,因此我们可以理解为闭包可以用来检索已经超出范围的“死”值。我们还可以理解它可以用于保护某些变量或函数。 因此,闭包对于创建私有变量和函数、实现部分函数应用以及在异步代码中保留状态非常有用。 每当在编写代码时遇到需要这类东西的情况时,都可以尝试引入闭包概念,即在程序员的语言中称为词法环境。

const makeCounter = () => {let count = 0;return () => {count++;console.log(count);}
}let counter = makeCounter();
counter(); // 输出 1
counter(); // 输出 2
counter(); // 输出 3

在上面这个例子中,makeCounter 是一个箭头函数,它返回另一个箭头函数。返回的函数每次被调用时都会增加 count 变量的值,并将新 count 值打印到控制台。 当调用 makeCounter 时,它创建了一个包含 count 变量的新作用域,并将其初始化为 0。然后它返回一个新的箭头函数,该函数“封闭”了这个作用域,并在每次调用时递增 count 变量。 当我们将返回的箭头函数分配给 counter 变量时,我们创建了一个闭包,它保留了对 count 变量的引用。 每次调用 counter() 时,它都会递增 count 变量并打印新值,因为它仍然“封闭”着外部函数作用域中的原始 count 变量。 因此,由于 count 变量没有暴露在返回对象的外部,它是一个实际上只能通过 makeCounter() 方法进行访问或修改的私有变量。

function add(x) {return function(y) {return x + y;}
}let add5 = add(5);
console.log(add5(3)); // 输出 8

在这个例子中,add() 函数返回了另一个接受单个参数的函数,该函数返回参数与外部函数作用域中的 x 值的总和。 这使我们能够通过传入 x 值并获取返回一个新函数来“部分应用” add() 函数。 这样我们就可以像使用任何其他函数一样使用新函数,根据需要传入不同的 y 值。

参考

作者:Allen_Xie

链接:https://leetcode.cn/problems/counter/

来源:力扣(LeetCode) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/101638.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qt判断当前日期的当月的最后一天是几号

1、拖个dateTimeEdit在界面上&#xff0c;同时来判断输入的时间的最后一天的日期是什么&#xff1f; int year,month;int monthArr[12]{31,28,31,30,31,30,31,31,30,31,30,31};QDateTime time ui->dateTimeEdit->dateTime();year time.toString("yyyy").toIn…

uniapp 显示icon异常

按照文档创建的uni-ui项目&#xff0c;仿照示例程序写的代码中icon显示异常 &#xe470; 异常情况&#xff1a; 正常情况&#xff1a; 通过比对代码发现&#xff0c;示例程序的App.vue中 有一个引用是问题的关键 正是因为多了这一个引用文件&#xff0c;图表的显示才能正常 …

3d tiles规范boundingVolume属性学习

3d tiles的瓦片&#xff08;Tiles&#xff09;包含一些属性&#xff0c;其中第一项是boundingVolume&#xff1b;下面学习boundingVolume&#xff1b; boundingVolume&#xff0c;这个翻译为边界范围框&#xff0c;如果直译为边界体积可能有问题&#xff0c;其实就是包围盒的意…

[Unity][VR]Passthrough2-创建一个基本的Passthrough应用

上一期我们对PassthroughXR项目做好了基本的项目设置,今天我们就开始构建一个基本的Passthrough应用。 我们还是从基本场景开始。先把默认的main camera删除。因为后续我们会引入OVR Rig对象,这个对象自带Camera用来实现VR视角。 在Project面板我们搜索OVR camera rig。看见…

[Mono Depth/3DOD]单目3D检测基础

1.数据增强 图像放缩和裁剪后&#xff0c;相机内参要做相应变化 import random def random_scale(image, calib, scale_range(0.8, 1.2)):scale random.uniform(*scale_range)width, height image.sizeimage image.resize((int(width * scale), int(height * scale)))cali…

10_10C++

X-mid #include <iostream> using namespace std; class Kun {//算术运算符friend const Kun operator(const Kun &k1,const Kun &k2);friend const Kun operator-(const Kun &k1,const Kun &k2);friend const Kun operator*(const Kun &k1,const Ku…

MFC扩展库BCGControlBar Pro v33.6 - 网格、报表控件功能升级

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中&#xff0c;并为您节省数百个开发和调试时间。 BCGControlBar专业版 v33.6已正式发布了&#xff0c;此版本包含了对图表组件的改进、带隐藏标签的单类功能区栏…

腾讯云 轻量云 上海 VPS 测评

description: 发布于 2023-07-05腾讯云 轻量云 上海 VPS 测评 腾讯云国内机非常稳定&#xff0c;一年用下来没有掉线丢包的情况。国内机适合与备案域名一起建站使用。带宽很小&#xff0c;图片资源使用CDN加速或海外机提供。 规格 CPU - 2核 内存 - 2GB 系统盘 - SSD云硬盘…

上海-华为全联接大会|竹云受邀参加华为云ROMAConnect行业生态联盟成立联合发布会

2023年9月22日&#xff0c;在上海举办的华为全联接大会上&#xff0c;竹云作为华为云全方位合作伙伴代表&#xff0c;受邀参加华为云ROMAConnect行业生态联盟成立联合发布会。华为云PaaS服务产品部副部长张甲磊以及联盟主要成员企业出席发布仪式&#xff0c;共同见证华为云ROMA…

Tabby All configured authentication methods failed

文章目录 重要序言错误原因tabby的连接设置 总结 重要序言 Tabby是一款美观耐用的软件&#xff0c;平常一直用来输入密码方法SSH公司服务器&#xff0c;后来为了另外一台服务器加了SSH私钥&#xff0c;之后Tabby SSH连接死活不成功&#xff0c;哎&#xff0c;折腾了好久&#…

Git分布式版本控制工具

Git分布式版本控制工具 一、概述 1.1开发中的实际场景 备份代码还原协同开发追溯问题代码的编写人和编写时间 1.2版本控制器的方式 集中式版本控制工具 版本库是集中存放在中央服务器的&#xff0c;团队里每个人工作时从中央服务器下载代码&#xff0c;是必须联网才能工作&…

Ubuntu编译安装colmap遇到的几个问题以及解决

总体安装过程已经很明白了&#xff0c;写的人很多了&#xff0c;我就不赘述了&#xff0c;可以参考这里或者其他博客。我主要记录几个我遇到的问题以及解决方法。 1、cmake报错&#xff1a;No CMAKE_CUDA_COMPILER could be found. 这个原因是没找到cuda和nvcc目录&#xff0…

解决Opencv dnn模块无法使用onnx模型的问题(将onnx的动态输入改成静态)

一、问题来源 最近做人脸识别项目&#xff0c;想只用OpenCV自带的人脸检测和识别模块实现&#xff0c;使用OpenCV传统方法&#xff1a;Haar级联分类器人脸检测LBPH算法人脸识别的教程已经有了&#xff0c;于是想着用OpenCV中的dnn模块来实现&#xff0c;dnn实现人脸检测也有&a…

Fisher辨别分析

问题要求 在UCI数据集上的Iris和Sonar数据上验证算法的有效性。训练和测试样本有三种方式&#xff08;三选一&#xff09;进行划分&#xff1a; &#xff08;一&#xff09; 将数据随机分训练和测试&#xff0c;多次平均求结果 &#xff08;二&#xff09;K折交叉验证 &…

【苍穹外卖 | 项目日记】第三天

前言&#xff1a; 今天状态不错&#xff0c;kuku就是写接口&#xff0c;很舒服 目录 前言&#xff1a; 今日完结任务&#xff1a; 今日收获&#xff1a; 杂项知识点&#xff1a; 总结&#xff1a; 今日完结任务&#xff1a; 实现了新增菜品接口实现了菜品分页查询接口实现…

WebSocket的原理与优缺点

websocket 是长连接&#xff0c;受网络限制比较大&#xff0c;需要处理好重连&#xff0c;比如用户进电梯或电信用户打个电话网断了&#xff0c;这时候就需要重连&#xff0c;如果 ws 一直重连不上&#xff0c;有些较复杂的业务方会不愿意的&#xff0c;是不是还要搞个 http 降…

【面试题】Spring源码中的getBean()为什么需要对““进行处理?

个人主页&#xff1a;金鳞踏雨 个人简介&#xff1a;大家好&#xff0c;我是金鳞&#xff0c;一个初出茅庐的Java小白 目前状况&#xff1a;22届普通本科毕业生&#xff0c;几经波折了&#xff0c;现在任职于一家国内大型知名日化公司&#xff0c;从事Java开发工作 我的博客&am…

如何基于先进视频技术,构建互联网视频监控安全管理平台解决方案

一、建设思路 依托互联网&#xff0c;建设一朵云&#xff0c;实现各类二三类视频资源统一接入&#xff0c;实现天网最后100米、10米、1米的全域覆盖。 依托人工智能与互联网技术&#xff0c;拓展视频资源在政府、社会面等多领域的全面应用&#xff1b;建设与运营模式并存&…

Insight H2 database 数据查询核心原理

本文目标是&#xff1a;了解查询的核心原理&#xff0c;对比 SQL 查询优化技巧在 h2database 中的落地实现。 前提&#xff1a;为了贴近实际实际&#xff0c;本文 Code Insight 基于 BTree 存储引擎。 数据查询核心原理 数据库实现查询的原理&#xff1a;遍历表/索引&#xff0…

软件测试工具有什么作用?有哪些好用的测试工具推荐?

软件测试工具是现代软件测试中不可或缺的重要组成部分&#xff0c;指的是一系列在软件开发过程中使用的工具&#xff0c;用于帮助测试人员进行测试活动&#xff0c;提高测试效率&#xff0c;减少测试成本。选择并使用合适的软件测试工具&#xff0c;可提高软件质量和效率。 一…