Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class RGBStreet {
- private const int MAX_INT = 1005 * 25;
- private int[] ConvertToArr(string house) {
- var arr = new int[3];
- var strArr = house.Split(' ');
- for (int i=0;i<strArr.Length;i++) {
- arr[i] = int.Parse(strArr[i]);
- }
- return arr;
- }
- private int Min(int a, int b) {
- return a < b ? a : b;
- }
- public int estimateCost(string[] houses) {
- var dp = new int[houses.Length][];
- for (int i=0;i<houses.Length;i++) {
- dp[i] = new int[3];
- for (int j=0;j<dp[i].Length;j++) {
- dp[i][j] = MAX_INT;
- }
- }
- int[] values = ConvertToArr(houses[0]);
- dp[0][0] = values[0];
- dp[0][1] = values[1];
- dp[0][2] = values[2];
- for (int i=1;i<houses.Length;i++) {
- values = ConvertToArr(houses[i]);
- for (int k=0;k<3;k++) {
- dp[i][k] = Min(dp[i-1][(k-1+3)%3], dp[i-1][(k+1+3)%3]) + values[k];
- }
- }
- return Min(dp[houses.Length-1][0], Min(dp[houses.Length-1][1], dp[houses.Length-1][2]));
- }
- }
Add Comment
Please, Sign In to add comment