Day 43

第258题:

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。(来自LeetCode)

 1、每次使用sum来存储num各位相加的值,然后递归(或者迭代)得出最终结果;

     

2、通过数学问题来解决,每一个数num例如321可以等于3*100+2*10+1也可以等于(3*99+2*9+3+2+1);

  每一位都是这样,所以我们用num对9取余,就可以得出结果,但是如果是9的倍数的时候,取余的结果的0,不符合;

  所以需要先将num-1再%9再+1,返回正确结果。

  

第257题:

给定一个二叉树,返回所有从根节点到叶子节点的路径。

说明: 叶子节点是指没有子节点的节点(来自LeetCode)

1、就是遍历二叉树,然后得出每条路经,加入集合中;

  

剑指Offer 50:

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。

1、可以用两个数组分别来表示字符和计算字符个数;

  然后将个数为1的字符返回。

  

原文地址:https://www.cnblogs.com/liang-yi-/p/13506891.html