《剑指offer》刷题笔记(发散思维能力):求1+2+3+…+n


  • 转载请注明作者和出处:http://blog.csdn.net/u011475210
  • 代码地址:https://github.com/WordZzzz/Note/tree/master/AtOffer
  • 刷题平台:https://www.nowcoder.com/
  • 题  库:剑指offer
  • 编  者:WordZzzz

  • 剑指offer刷题笔记发散思维能力求123n

    • 题目描述
    • 解题思路
    • C版代码实现
      • 递归
      • 二维数组
    • Python版代码实现
      • 递归
      • reduce

题目描述:

求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

解题思路:

不能使用乘除法就意味着不能使用公式,循环和条件判断也不能用,所以只能用递归,递归的停止条件用逻辑与来终止(短路特性),即当n为0时,不再递归直接返回结果。

在网上还找了一种解题思路,就是利用计算二维数组的元素数量来实现的,妙,实在是妙。

C++版代码实现:

递归:

class Solution {
public:int Sum_Solution(int n) {int ans = n;ans && (ans += Sum_Solution(n - 1));return ans;}
};

二维数组:

class Solution {
public:int Sum_Solution(int n) {bool a[n][n+1];return sizeof(a)>>1;}
};

Python版代码实现:

递归:

# -*- coding:utf-8 -*-
class Solution:def __init__(self):self.sum = 0def Sum_Solution(self, n):# write code heredef qiusum(n):self.sum += nn -= 1return n>0 and self.Sum_Solution(n)qiusum(n)return self.sum

reduce:

# -*- coding:utf-8 -*-
class Solution:def Sum_Solution(self, n):# write code heredef f(x,y):return x+yreturn reduce(f,range(n+1))

系列教程持续发布中,欢迎订阅、关注、收藏、评论、点赞哦~~( ̄▽ ̄~)~

完的汪(∪。∪)。。。zzz

《剑指offer》刷题笔记(发散思维能力):求1+2+3+...+n相关推荐

  1. C++剑指offer刷题笔记

    说明:本文是本人刷题后整理的剑指offer1-68题的题解笔记,编程语言为c++. 主要参考刷题笔记网址:leetcode剑指offer 次要参考刷题笔记网址:牛客剑指offer 剑指OFFER 面试 ...

  2. 剑指offer刷题笔记-篇2

    文章目录 剑指offer 前言 机器人的运动范围 剪绳子 二进制中1的个数 数值的整数次方 从1到n的位数 移除链表元素 删除链表中重复的结点 *正则表达式匹配 *表示数值的字符串 调整数组顺序 链表 ...

  3. 剑指offer刷题笔记

    最近LeetCode上的<剑指offer>的题刷的差不多了,只剩几道无聊的题了.现在把做题过程中的记录放在这里,作为将来查看的笔记,也同时欢迎大家指出其中的不当之处(QQ).虽然博主现在仍 ...

  4. 【LeetCode 剑指offer 刷题笔记】汇总(已完成)

    前言   不知不觉就结束了自己的秋招之路,虽感觉有些艰辛但是收获很多.找工作那段时间做了很多学习笔记,这是数据结构与算法相关的一部分笔记,这一块除了复习相关教科书,还有就是刷LeetCode和< ...

  5. 【剑指Offer】剑指Offer刷题笔记

    数组和字符串 剑指 Offer 04. 二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个 ...

  6. 力扣(LeetCode)剑指offer刷题笔记(java),已完结!!!

    文章目录 3.数组中重复的数字 4.二维数组中的查找 5.替换空格 6.从尾到头打印链表 7.重建二叉树 9.两个栈来实现一个队列 10-1.斐波那契数列 10-2.跳台阶 11.旋转数组的最小数字 ...

  7. 最新剑指offer刷题笔记js(含新旧俩版所有题)

    目录 一.面试需要的知识() 二.高质量代码 三.解决面试题的思路 四.优化时间和空间效率 五.面试中的各项能力 一.面试需要的知识 数据结构.算法(查找.排序.递归.循环和位运算) 1.求平方根 思 ...

  8. 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 101. Symmetric Tree /**  * Definition for a binary tree no ...

  9. 【LeetCode 剑指offer刷题】数组题2:57 有序数组中和为s的两个数(167 Two Sum II - Input array is sorted)...

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 57 有序数组中和为s的两个数 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是 ...

  10. 【LeetCode 剑指offer刷题】字符串题6:67 把字符串转成整数

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 67 把字符串转成整数 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符 ...

最新文章

  1. Ajax方式上传文件报错Uncaught TypeError: Illegal invocation
  2. ios 打电话结束返回到应用中
  3. Linux 终端部分重要快捷键
  4. 设置Eclipse智能提示
  5. 2/19 福建四校联考
  6. 矩阵快速幂 HDU3483
  7. Kotlin 学习笔记(七)—— Kotlin类与对象之属性与字段
  8. git clone大文件EOF错误
  9. 常用tab选项卡代码
  10. PS更改显示的尺寸单位
  11. 【回归预测-ELM预测】基于遗传算法优化极限学习机实现风电数据回归预测附matlab代码
  12. 依分布收敛、依概率收敛、均方收敛、几乎处处收敛
  13. java-web阶段性总结
  14. Shel编程之免交互5
  15. 【安全篇 / 反病毒】(5.6) ❀ 01. 反病毒的基本配置 ❀ FortiGate 防火墙
  16. Node.js的线程和进程*2014年4月的文章
  17. 浏览器设置跨域及允许携带cookie
  18. 7-2 分解素因子 (10 分)
  19. LearnGL - 06.1 - Matrix - 矩阵02 - 向量空间、向量空间的维度、为何矩阵乘法要有 [M x N] * [N * P] 的 N 要相等的限制
  20. 深入理解Spark RDD——RDD信息对象

热门文章

  1. 052试题 86 - crosscheck 命令及expried
  2. 怎样上android官方下载,【图文教程】如何安装 iOS/Android(安卓)触动精灵?
  3. python 百度云搜索引擎入口_2016最新百度云网盘搜索引擎源码,附带Python爬虫+PHP网站+Xunsearch搜索引擎...
  4. Linux -- 手动配置静态IP
  5. windows电脑cmd命令查看网卡的物理地址(mac地址)
  6. 32位CPU最大支持4G内存
  7. Scons安装和使用
  8. NCE4 L46 Hobbies
  9. python 右键没有EDIT with IDLE选项 图文讲解解决方法
  10. 牛客题——点击消除(go)