record | chenfx

chenfx , record everything……


  • 首页

  • 归档

  • 站点地图

四数之和

发表于 2018-10-10 | 阅读次数:

题目
给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。
注意:答案中不可以包含重复的四元组

示例

1
2
3
4
5
6
7
输入:nums = [1, 0, -1, 0, -2, 2],和 target = 0
输出:
[
[-1, 0, 0, 1],
[-2, -1, 1, 2],
[-2, 0, 0, 2]
]
阅读全文 »

Thunk函数的含义和用法

发表于 2018-09-26 | 阅读次数:

弄清楚 Thunk 函数的前提下先看两个定义,什么是求值策略?

求值策略

求值策略即编程语言的函数在进行参数传递时,函数的参数到底应该什么时候进行计算求值比较好;这里也是一个争论点,观点一是“传值调用(call by value)”,观点二是“传名调用(call by name)”;那么这两种观点有什么区别呢?

  1. 传值调用

例如:

1
2
3
4
5
6
var x = 1;
funciton f(m) {
return m * 2;
}

f(x + 5);

在这个函数上如果用传值调用(call by value)的话,即在进入函数体之前就计算 x + 5 的值(等于 6),再将已经求出的这个值传入函数 f;c 语言就是这种策略。

1
2
3
f(x + 5)
// 传值调用,等同于
f(6)
  1. 传名调用

还是前面的例子,如果用传名调用(call by name)的话,即直接将表达式 x + 5 传入函数体,只在函数体内部用到它的时候进行求值; Hskell 语言就是采用的这种策略。

1
2
3
f(x + 5)
// 传名调用,等同于
(x + 5) * 2
阅读全文 »

最接近的三数之和

发表于 2018-09-11 | 阅读次数:

题目
给定一个包括 n 个整数的数组 nums 和一个目标值 target 。找出 nums 中的三个整数,使得它们的和与 target 最接近,返回这三个数的和。假定每组输入只存在唯一答案。

示例

1
2
给定数组 nums = [-1, 2, 1, -4], target = 1;
与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2)
阅读全文 »

三数之和

发表于 2018-08-31 | 阅读次数:

题目
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件的三元组。
注意:答案中可以包含重复的三元组。

示例

1
2
3
4
5
6
给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:  
[
[-1, 0, 1],
[-1, -1, 2],
[0, 1, -1]
]

解题思路
通过循环数组,把数组中的值左右比较,得到最终的 target 值。

阅读全文 »

最长公共前缀

发表于 2018-08-18 | 阅读次数:

题目
编写一个函数来查找字符串数组中的最长公共前缀;如果不存在公共前缀,则返回 ""。注意:所有输入只包含小写字母 a-z

示例1

1
2
输入:["flower", "flow", "flight"]
输出:"fl"

示例2

1
2
输入:["dog", "rececar", "car"]
输出:""
阅读全文 »
1…789…13
chenfx

chenfx

64 日志
13 标签
GitHub
Creative Commons
© 2016 — 2023 chenfx
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.3

渝公网安备 50010302001280号

渝ICP备16001477号-1