Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Test
// a: [9, 8, 8, 5, 3, 5, 3, 2, 8, 6] // 4 // a: [4, 4] // 1 // a: [2, 1, 4, 4, 1, 4, 4, 1, 2, 0, 1, 0, 0, 3, 1, 3, 4, 1, 3, 4] // 6 //Rextester.Program.Main is the entry point for your code. Don't change it. //Compiler version 4.0.30319.17929 for Microsoft (R) .NET Framework 4.5 using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; namespace Rextester { public class Program { public static void Main(string[] args) { var input = new int[] { 9, 8, 8, 5, 3, 5, 3, 2, 8, 6 }; //Console.WriteLine("Result: {0}", zigzag(input)); Console.WriteLine("\nResult: {0}", zigzagNew(input)); } public static int zigzag(int[] a) { if (a.Length == 0) return 0; if (a.Length < 3) return 1; var result = 0; var maxresult = 0; for (int i = 0; i < a.Length; i++) { if (i > 0 && i < a.Length-1) { var l = a[i-1]; var m = a[i]; var r = a[i+1]; Console.Write("{0}) l: {1} m: {2} r: {3}\t\t", i, l, m, r); if ((m < l) && (m < r)) result++; else if ((m > l) && (m > r)) result++; else { result = 0; } if (result == 1) result = 3; if (maxresult < result) maxresult = result; Console.Write("Max: {1} Res: {2}", i, maxresult, result); if (result == 0) Console.Write("\t\tReset"); Console.WriteLine(); } } if (maxresult > result) result = maxresult; return result; } public static int zigzagNew(int[] a) { var result = 0; var maxresult = 0; var sign = '='; var prev = '='; for (int i = 0; i < a.Length; i++) { if (i > 0) { if (a[i-1] > a[i]) sign = '>'; else if (a[i-1] < a[i]) sign = '<'; else sign = '='; if (prev == '=') result++; else if (prev != sign) result++; else result = 1; prev = sign; if (maxresult < result) maxresult = result; Console.WriteLine("{0} {1} {2} : {3}", a[i-1], sign, a[i], result); } /* if (i > 0 && i < a.Length-1) { var l = a[i-1]; var m = a[i]; var r = a[i+1]; Console.Write("{0}) l: {1} m: {2} r: {3}\t\t", i, l, m, r); if ((m < l) && (m < r)) { result++; lastpos = i; } else if ((m > l) && (m > r)) { result++; lastpos = i; } else { result = 0; } if (result == 1) result = 3; if (maxresult < result) maxresult = result; Console.Write("Max: {1} Res: {2}", i, maxresult, result); if (result == 0) Console.Write("\t\tReset"); Console.WriteLine(); } */ } /* Console.WriteLine("Lastpos: {0} Length: {1}", lastpos, a.Length); if (lastpos == a.Length) result++; if (maxresult > result) result = maxresult; */ return result; } } }
run
|
edit
|
history
|
help
0
Simple Regex Example
sxsadxasxd
Plt-D v.0.8.5
dsadsadsa
הארות אופן שימוש
5. Generics
Bases5
Calculator
Practical
Des encryption