Ahri-珊

day4将分享LeetCode算法题119,121,122以及个人展示页面的制作。

LeetCode

今天的三道题都比较简单,都是以前已经做过的知识点(杨辉三角,动态规划)。

119.Pascal’s Triangle II

输出杨辉三角的第k层。

心路历程

第k层规律:第k层的元素除去首尾的1之后其余元素为k-1层元素两两相加。

代码:

var getRow = function(rowIndex) {
    if(rowIndex==0)
        return [1];
    var res = [];
    res[0] = [1];
    for(var i=1;i<=rowIndex;i++)
        {
            res[i] = new Array();
            res[i].push(1);
            for(var j=0;j<i-1;j++)
                {
                    res[i].push(res[i-1][j]+res[i-1][j+1]);
                }
            res[i].push(1);
        }
    return res[rowIndex];
};

121. Best Time to Buy and Sell Stock

买卖股票,只能买一次。

心路历程

1.题目类型:动态规划问题

2.动态规划需要的两个变量:a.global 记录全局最优 b.local 记录局部最优

3.什么时候局部最优:当晚一天卖的时候比前一天卖赚的少的时候,local不能再累加

4.什么时候全局最优: 用global记录每次的局部最优,局部最优中最大的为全局最优,因此遇到更大的局部最优就记录到global

代码:

var maxProfit = function(prices) {
    var global_p = 0;
    var local_p = 0;
    var profit;
    for(var i=0;i<prices.length-1;i++)
        {
            profit = prices[i+1]-prices[i];
            local_p = Math.max(local_p+profit,profit);
            global_p = Math.max(global_p,local_p);
        }
    return global_p;
};

Best Time to Buy and Sell Stock II

买卖股票,可以无限次买。

心路历程

这一题可以无限次的买,那太简单了,只要有钱赚我就买买买。钱就加加加!

代码:

var maxProfit = function(prices) {
    var global_p = 0;
    var local_p = 0;
    var profit;
    for(var i=0;i<prices.length-1;i++)
        {
            profit = prices[i+1]-prices[i];
            local_p = Math.max(local_p+profit,profit);
            global_p = Math.max(global_p,local_p);
        }
    return global_p;
};

Profit

今天用React写了个简单的个人展示页面。

profit

核心组件为导航栏和展示卡片。

导航栏

class App extends Component {
    constructor(props) {
        super(props)
        this.state = {
        }
    }
 	render() {
		return (
		  <nav className="navbar navbar-default App">
			<div className="container-fluid">
			<div className="navbar-header">
				<a className="navbar-brand" href="">Ahri-</a>
				<img src='favicon.ico' className="App-logo" alt="logo" />
			</div>
			<div>
				<ul className="nav navbar-nav">
					<li className="dropdown"><Link to="/">Demo</Link></li>
					<li className="dropdown"><Link to="/about">About Me</Link></li>
				</ul>
			</div>
			</div>
			<div>{this.props.children}</div>
		  </nav>
		);
 	 }
}
export default App;

展示卡片

export default class CardComponent extends React.Component{
	constructor(props) {
    super(props);
    this.state = {};
  }
    render(){
        return(
				<div className="col-sm-3 col-xs-12 card">
					<div className="card_content">
						<div className={this.props.class}>
							<h1><a href={this.props.url} target="_blank">{this.props.title}</a>
								<small>{this.props.time}</small>
							</h1>
						</div>
						<p>{this.props.introduce}</p>
						<img src={this.props.img} alt={this.props.title} />
					</div>
				</div>
        )
    }
}